mjlt11 发表于 2009-5-26 07:46

海明窗该怎么定义子函数?

wp=0.2*pi;ws=0.3*pi;
%输入设计指标
tr_width=ws-wp;
%计算过渡带的宽度
M=ceil(6.6*pi/ tr_width)+1; %由海明窗的过渡带宽度选择合适的阶数
n=; wc=(ws+wp)/2;
%理想低通的截止频率(取平均值)
hd=ideal_lp(wc,M);
%理想低通滤波器冲激响应
w_ham=(haming(M)) '; h=hd .* w_ham;
%给理想低通加海明窗
= freqz_m(h,); %求出幅频响应
delta_w=2*pi/1000; Rp=-(min(db(1:1:wp/delta_w+1)));
%检验通带波动
As=-round(max(db(ws/delta_w+1:1:501)));%检验最小阻带衰减
% plots(绘图)
subplot(2,2,1),stem(n,hd); title(Ideal Impulse Response');
axis(0 M-1 -0.1 0.3);xlabel('n');ylabel('hd(n)');
subplot(2,2,2);stem(n,w_ham);title('Hamming Window') ;
axis(); xlabel('n');ylabel('w(n)');
subplot(2,2,3);stem(n,h); title('Actual Impulse Response');
axis(); xlabel('n');ylabel('h(n)');
subplot(2,2,4);plot(w/pi,db);title('Magnitude Response in dB');grid
axis(); xlabel('frequency in pi units'); ylabel('Decibels');

function hd=ideal_lp(wc, M);
%Ideal Lowpass filter computation
alpha=(M-1)/2; n=;
m=n-alpha+eps; hd=sin(wc*m)./(pi*m);

[ 本帖最后由 ChaChing 于 2009-5-27 14:43 编辑 ]

mjlt11 发表于 2009-5-27 10:48

请问大大们:这个程序的海明窗该怎么定义子函数?

选择合适的窗函数设计一个FIR数字低通滤波器,要求:通带截至频率为w =0.2 ,R =0.25dB;阻带截至频率为w =0.3 ,A =50dB。求脉冲响应并描绘一张滤波器的频率响应图。

MATLAB程序如下:
wp=0.2*pi;ws=0.3*pi;
%输入设计指标
tr_width=ws-wp;
%计算过渡带的宽度
M=ceil(6.6*pi/ tr_width)+1; %由海明窗的过渡带宽度选择合适的阶数
n=; wc=(ws+wp)/2;
%理想低通的截止频率(取平均值)
hd=ideal_lp(wc,M);
%理想低通滤波器冲激响应
w_ham=(hamming(M))'; h=hd .* w_ham;
%给理想低通加海明窗
= freqz_m(h,);
%求出幅频响应
delta_w=2*pi/1000; Rp=-(min(db(1:1:wp/delta_w+1)));
%检验通带波动
As=-round(max(db(ws/delta_w+1:1:501)));%检验最小阻带衰减
% plots(绘图)
subplot(2,2,1),stem(n,hd); title(Ideal Impulse Response');
axis();xlabel('n');ylabel('hd(n)');
subplot(2,2,2);stem(n,w_ham);title('Hamming Window') ;
axis(); xlabel('n');ylabel('w(n)');
subplot(2,2,3);stem(n,h); title('Actual Impulse Response');
axis(); xlabel('n');ylabel('h(n)');
subplot(2,2,4);plot(w/pi,db);title('Magnitude Response in dB');grid
axis(); xlabel('frequency in pi units'); ylabel('Decibels');
其中自定义的两个函数

1)函数freqz_m,输出信号的幅频特性和相频特性,db为分贝幅频响应,mag为实际幅度响应,pha为相频特性。
function=freqz_m(b,a);
=freqz(b,a,1000,'whole');
H=(H(1:1:501))'; w=(w(1:1:501))';
mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H);

2)函数ideal_lp
function hd = ideal_lp(wc,M);
% Ideal LowPass filter computation
% --------------------------------
% = ideal_lp(wc,M)
%hd = ideal impulse response between 0 to M-1
%wc = cutoff frequency in radians
%   M = length of the ideal filter
alpha = (M-1)/2; n = ;
m = n - alpha + eps; hd = sin(wc*m) ./ (pi*m);
请问大大们:这个程序的海明窗该怎么定义子函数?

[ 本帖最后由 ChaChing 于 2009-5-27 14:46 编辑 ]

ChaChing 发表于 2009-5-27 14:45

建议楼主看下本版规则!
标题要明确! 相同或相近内容的话题,请勿开新贴,一帖发完
页: [1]
查看完整版本: 海明窗该怎么定义子函数?