MATLAB代做  | MATLAB代寫  | MATLAB有償編程
首 頁
當前位置:MATLAB代做|MATLAB代寫|MATLAB有償編程matlab源碼信號處理
基于matlab編程幾種常見窗函數及其程序實現        [↓跳到下載地址]
官方主頁:源碼共享網站:www.kggbzb.tw

聯系方式:客服QQ:1747812398 買代碼源碼軟件站,歡迎咨詢

運行環境:Win9X/2000/XP/2003/

源碼語言:簡體中文

源碼類型:源碼程序 - 信號處理

推薦星級:

更新時間:2015-04-23 00:16:09

源碼簡介

表1 幾種常用的窗函數的比較

名稱

特點

應用

矩形窗

Rectangle

矩形窗使用最多,習慣上不加窗就是使信號通過了矩形窗。這種窗的優點是主瓣比較集中,缺點是旁瓣較高,并有負旁瓣,導致變換中帶進了高頻干擾和泄漏,甚至出現負譜現象。頻率識別精度最高,幅值識別精度最低,所以矩形窗不是一個理想的窗。

如果僅要求精確讀出主瓣頻率,而不考慮幅值精度,則可選用矩形窗,例如測量物體的自振頻率等,也可以用在階次分析中。

漢寧窗

Hanning

又稱升余弦窗。主瓣加寬并降低,旁瓣則顯著減小,從減小泄漏觀點出發,漢寧窗優于矩形窗.但漢寧窗主瓣加寬,相當于分析帶寬加寬,頻率分辨力下降。它與矩形窗相比,泄漏、波動都減小了,并且選擇性也提高。

是很有用的窗函數。如果測試信號有多個頻率分量,頻譜表現的十分復雜,且測試的目的更多關注頻率點而非能量的大小,需要選擇漢寧窗。如果被測信號是隨機或者未知的,選擇漢寧窗。

海明窗

(漢明窗)

Hamming

與漢寧窗都是余弦窗,又稱改進的升余弦窗,只是加權系數不同,使旁瓣達到更小。但其旁瓣衰減速度比漢寧窗衰減速度慢。

與漢明窗類似,也是很有用的窗函數。

平頂窗

Flap Top

平頂窗在頻域時的表現就象它的名稱一樣有非常小的通帶波動。

由于在幅度上有較小的誤差,所以這個窗可以用在校準上。

凱塞窗

Kaiser

定義了一組可調的由零階貝塞爾Bessel 函數構成的窗函數,通過調整參數β可以在主瓣寬度和旁瓣衰減之間自由選擇它們的比重。對于某一長度的Kaiser 窗,給定β,則旁瓣高度也就固定了。

 

布萊克曼窗

Blackman

二階升余弦窗,主瓣寬,旁瓣比較低,但等效噪聲帶寬比漢寧窗要大一點,波動卻小一點。頻率識別精度最低,但幅值識別精度最高,有更好的選擇性。

常用來檢測兩個頻率相近幅度不同的信號。

高斯窗

Gaussian

是一種指數窗。主瓣較寬,故而頻率分辨力低;無負的旁瓣,第一旁瓣衰減達一55dB。常被用來截短一些非周期信號,如指數衰減信號等。

對于隨時間按指數衰減的函數,可采用指數窗來提高信噪比。

三角窗

(費杰窗)

Fejer

是冪窗的一次方形式。與矩形窗比較,主瓣寬約等于矩形窗的兩倍,但旁瓣小,而且無負旁瓣。

如果分析窄帶信號,且有較強的干擾噪聲,則應選用旁瓣幅度小的窗函數,如漢寧窗、三角窗等;

切比雪夫窗(Chebyshev)

在給定旁瓣高度下,Chebyshev窗的主瓣寬度最小,具有等波動性,也就是說,其所有的旁瓣都具有相等的高度。

 

 

下面是幾種窗函數歸一化DTFT幅度的MATLAB程序:

附上DTFT函數(dtft.m):

function [ X ] = dtft( x,n,w )

%   Computes Discrete-time Fourier Transform

%   [X] = dtft(x,n,w)

%    X = DTFT values computed at w.frequencies

%    x = finite duration sequence over n

%    n = sample position vector

%    w = frequency location vector

X = x*exp(-j*n'*w);

%

end


矩形窗:

%DTFT of a Rectangular Window, M=10,25,50,101

clc; close all;

Hf_1=figure; set(Hf_1,'NumberTitle','off','Name','P0304a');

w=linspace(-pi,pi,501); wtick=[-1:0.5:1]; magtick=[0:0.5:1.1];

% M=10

M=10; n=0:M; x=ones(1,length(n));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,1); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

ylabel('|X|'); title(['M=10']);

set(gca,'XTick',wtick,'YTick',magtick);

% M=25

M=25; n=0:M; x=ones(1,length(n));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,2); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

title(['M=25']); set(gca,'XTick',wtick,'YTick',magtick);

% M=50

M=50; n=0:M; x=ones(1,length(n));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,3); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); ylabel('|X|');

title('M=50'); set(gca,'XTick',wtick,'YTick',magtick);

% M=101

M=101; n=0:M; x=ones(1,length(n));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,4); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); ylabel('|X|');

title(['M=101']);


 

三角窗:

% Triangular Window:

% DTFT of a Triangular Window,M = 10,25,50,101

clc; close all;

Hf_1=figure; set(Hf_1,'NumberTitle','off','Name','P0304b');

w=linspace(-pi,pi,501); wtick=[-1:0.5:1]; magtick=[0:0.5:1.1];

% M = 10

M=10; n=0:M; x=(1-(abs(M-1-(2*n))/(M+1)));

x=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,1); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

ylabel('|X|'); title(['M = 10']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 25

M=25; n=0:M; x=(1-(abs(M-1-(2*n))/(M+1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,2); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

title(['M = 25']); set(gca,'XTick',wtick,'YTick',magtick);

% M = 50

M=50; n=0:M; x=(1-(abs(M-1-(2*n))/(M+1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,3); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); ylabel('|X|'); title(['M = 50']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 100

M=101;n=0:M; x=(1-(abs(M-1-(2*n))/(M+1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,4); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); title(['M = 101']);

set(gca,'XTick',wtick,'YTick',magtick);


 

海寧窗:

% Hann Window

% DTFT of a Hann Window, M = 10,25,50,101

clc;close all;

Hf_1 = figure; set(Hf_1,'NumberTitle','off','Name','P0304c');

w=linspace(-pi,pi,501); wtick=[-1:0.5:1]; magtick=[0:0.5:1.1];

% M = 10

M=10;n=0:M; x=0.5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,1); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

ylabel('|X|'); title(['M = 10']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 25

M=25;n=0:M; x=0.5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,2); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

 title(['M = 25']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 50

M=50;n=0:M; x=0.5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,3); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); ylabel('|X|'); title(['M = 50']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 101

M=101;n=0:M; x=0.5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,4); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); title(['M = 101']);

set(gca,'XTick',wtick,'YTick',magtick);


 

哈明窗:

% Hamming Window:

clc; close all;

Hf_1=figure; set(Hf_1,'NumberTitle','off','Name','P0304d');

w=linspace(-pi,pi,501); wtick=[-1:0.5:1]; magtick=[0:0.5:1.1];

% M = 10

M=10; n=0:M; x=(0.54-0.46*cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,1); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

 ylabel('|X|'); title(['M = 10']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 25

M=25; n=0:M; x=(0.54-0.46*cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,2); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

title(['M = 25']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 50

M=50; n=0:M; x=(0.54-0.46*cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,3); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi'); ylabel('|X|'); title(['M=50']);

set(gca,'XTick',wtick,'YTick',magtick);

% M = 101

M=101; n=0:M; x=(0.54-0.46*cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,4); plot(w/pi,magX,'LineWidth',1.5); axis([-1 1 0 1.1]);

xlabel('\omega/\pi');title(['M=101']);

set(gca,'XTick',wtick,'YTick',magtick);


提 示:本站所有源碼只提供瀏覽,需要定制的朋友可以聯系在線客服!
注意:價格根據項目的難易程度來定價格業務咨詢

基于matlab編程幾種常見窗函數及其程序實現 --下載地址

注意:為避免不必要的誤會,本站項目里的源碼只公開部分需要的聯系在線客服

本站長期招聘程序代寫高手,歡迎加入華南地區matlab團隊

想創業卻沒有經驗的人

無論你是否有過網上開店的經驗,都可以隨時聯系在線客服,建立自己獨立的網站
想開網店卻不知道如何入手

淘寶創業成本低而且風險小,如果想開淘寶店的朋友可以聯系在線客服。
想兼職創業,卻不擅長交際與服務的人

在家創業月入5000元。網站程序+百套群發工具+網賺資料+域名+空間+本站終身代理資格,這樣你網賺的條件全具備了。每天3小時管理、推廣、收錢。
缺乏能快速贏利型產品的人

導入多種最新流行營銷軟件+網賺教程,讓入駐者輕松加盟、復制有效成交技巧、快速賺錢。

源碼評論評論內容只代表網友觀點,與本站立場無關!

   評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論

瀏覽說明

* 本站所有源碼全部公開,隨時隨地瀏覽!
* MATLAB軟件如用于商業用途,請購買正版!
* 如果您發現下載鏈接錯誤,請點擊報告錯誤謝謝!
* 站內提供的所有軟件包含破解及注冊碼均是由網上搜集,若侵犯了你的版權利益,敬請來信通知我們!
Copyright © 2008-2014 www.kggbzb.tw. All Rights Reserved.
頁面執行時間:235.35160 毫秒
安微25选5开奖号