数字信号处理基于matlab(用DFT作谱分析,窗函数的设计)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:用DFT作谱分析x1=[1 1 1 1];
x2=[1 2 3 4 4 3 2 1];
n1=0:8;x3=cos(n1*pi/4);
n2=0:8;x4=sin(n2*pi/8);
figure
subplot(2,2,1);stem(x1);
subplot(2,2,2);stem(x2);
subplot(2,2,3);stem(x3);
subplot(2,2,4);stem(x4);
N1=8;
F1x1=fft(x1,N1);
F1x2=fft(x2,N1);
F1x3=fft(x3,N1);
F1x4=fft(x4,N1);
figure
subplot(2,2,1);stem(abs(F1x1));
subplot(2,2,2);stem(abs(F1x2));
subplot(2,2,3);stem(abs(F1x3));
subplot(2,2,4);stem(abs(F1x4));
N3=256;
F3x1=fft(x1,N3);
F3x2=fft(x2,N3);
F3x3=fft(x3,N3);
F3x4=fft(x4,N3);
w=2/N3*[0:N3-1];
figure
subplot(2,2,1);plot(w,abs(F3x1));
subplot(2,2,2);plot(w,abs(F3x2));
subplot(2,2,3);plot(w,abs(F3x3));
subplot(2,2,4);plot(w,abs(F3x4));
N6=64;
t=0:1/64:1/64*(N6-1);
x6=cos(8*pi*t)+cos(16*pi*t)+cos(20*pi*t);
figure;plot(x6)
Fx6=fft(x6,N6);N=64
w6=2/N6*[0:N6-1];
figure;plot(w6,Fx6)
实验二:用双线性法设计IIR数字滤波器
clear all;close all;clc
T=1;
Wp=2/T*tan(0.2*pi/2);Ws=2/T*tan(0.3*pi/2);
Rp=1;Rs=15;
[N,Wc]=buttord(Wp,Ws,Rp,Rs,'s');
[B,A]=butter(N,Wc,'s');
[C,D]=bilinear(B,A,1/T);
W=0:0.001*pi:0.5*pi;
H=freqs(B,A,W);
Hd=freqz(C,D,W);
figure
subplot(3,1,1);plot(W/pi,abs(H))
grid on
title('模拟巴特沃斯滤波器')
xlabel('Frequency/Hz')
ylabel('Magnitude')
subplot(3,1,2);plot(W/pi,abs(Hd))
grid on
title('数字巴特沃斯滤波器')
xlabel('Didital Frequency/pi')
ylabel('Magnitude')
Hd_db=-20*log(abs(Hd(1)./(abs(Hd)+eps)));
subplot(3,1,3);plot(W/pi,Hd_db)
grid on
title('数字巴特沃斯滤波器波特图')
xlabel('Didital Frequency/pi')
ylabel('bd_Magnitude')
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4.8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
M=512;fx=fft(x,M);
y=filter(C,D,x);
fy=fft(y,M);
f=1/512*[0:511]*250
figure
subplot(2,1,1);plot(x);
subplot(2,1,2);plot(f,abs(fx));
figure
subplot(2,1,1);plot(y);
subplot(2,1,2);plot(f,abs(fy));
心电图谱分析1、滤波前波形和频谱
2、滤波后波形和频谱
实验三:用窗函数法设计FIR数字滤波器
一、N=33,用四种窗设计滤波器
function hd=ideal(N,wc)
for n=0:N-1
if n==(N-1)/2
hd(n+1)=wc/pi;
else hd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));
end
end
clear all;close all;clc
N=33;wc=pi/4;
hd=ideal(N,wc);
w1=boxcar(N);
w2=hamming(N);
w3=hann(N);
w4=blackman(N);
h1=hd.*w1';
h2=hd.*w2';
h3=hd.*w3';
h4=hd.*w4';
M=512;
fh1=fft(h1,M);
db1=-20*log10(abs(fh1(1)./(abs(fh1)+eps)));
fh2=fft(h2,M);
db2=-20*log10(abs(fh2(1)./(abs(fh2)+eps)));
fh3=fft(h3,M);
db3=-20*log10(abs(fh3(1)./(abs(fh3)+eps)));
fh4=fft(h4,M);
db4=-20*log10(abs(fh4(1)./(abs(fh4)+eps)));
w=2/M*[0:M-1];
figure;
subplot(2,2,1);stem(h1);
grid on;
title('矩形窗');
xlabel('n');
ylabel('h(n)');
subplot(2,2,2);plot(w,abs(fh1));
grid on;
title('矩形窗');
xlabel('w');
ylabel('H(k)');
subplot(2,2,3);plot(w,db1);
grid on;
title('矩形窗');
xlabel('w');
ylabel('20lg(H(k)/H(0))'); subplot(2,2,4);plot(w,angle(fh1)); grid on;
title('矩形窗');
xlabel('w');
ylabel('相位特性');
figure;
subplot(2,2,1);stem(h2);
grid on;
title('汉宁窗');
xlabel('n');
ylabel('h(n)');
subplot(2,2,2);plot(w,abs(fh2)); grid on;
title('汉宁窗');
xlabel('w');
ylabel('H(k)');
subplot(2,2,3);plot(w,db2);
grid on;
title('汉宁窗');
xlabel('w');
ylabel('20lg(H(k)/H(0))'); subplot(2,2,4);plot(w,angle(fh2)); grid on;
title('汉宁窗');
xlabel('w');
ylabel('相位特性');
figure;
subplot(2,2,1);stem(h3);
grid on;
title('海明窗');
xlabel('n');
ylabel('h(n)');
subplot(2,2,2);plot(w,abs(fh3)); grid on;
title('海明窗');
xlabel('w');
ylabel('H(k)');
subplot(2,2,3);plot(w,db3);
grid on;
title('海明窗');
xlabel('w');
ylabel('20lg(H(k)/H(0))'); subplot(2,2,4);plot(w,angle(fh3)); grid on;
title('海明窗');
xlabel('w');
ylabel('相位特性');
figure;
subplot(2,2,1);stem(h4);
grid on;
title('布莱克曼窗');
xlabel('n');
ylabel('h(n)');
subplot(2,2,2);plot(w,abs(fh4)); grid on;
title('布莱克曼窗');
xlabel('w');
ylabel('H(k)');
subplot(2,2,3);plot(w,db4);
grid on;
title('布莱克曼窗');
xlabel('w');
ylabel('20lg(H(k)/H(0))'); subplot(2,2,4);plot(w,angle(fh4)); grid on;
title('布莱克曼窗');
xlabel('w');
ylabel('相位特性');
二,用一种窗采用N=15或N=33、w=pi/4设计滤波器clear all;close all;clc
N=15;wc=pi/4;
hd=ideal(N,wc);
w1=blackman(N);
h1=hd.*w1';
M=512;
fh1=fft(h1,M);
db1=-20*log10(abs(fh1(1)./(abs(fh1)+eps)));
w=2/M*[0:M-1];
figure;
subplot(2,2,1);stem(h1);
grid on;
title('布莱克曼窗(N=15)');
xlabel('n');
ylabel('h(n)');
subplot(2,2,2);plot(w,abs(fh1));
grid on;
title('布莱克曼窗(N=15)');
xlabel('w');
ylabel('H(k)');
subplot(2,2,3);plot(w,db1);
grid on;
title('布莱克曼窗(N=15)');
xlabel('w');
ylabel('20lg(H(k)/H(0))');
subplot(2,2,4);plot(w,angle(fh1));
grid on;
title('布莱克曼窗(N=15)');
xlabel('w');
ylabel('相位特性');
N=33;wc=pi/4;
hd=ideal(N,wc);
w2=blackman(N);
h2=hd.*w2';
M=512;
fh2=fft(h2,M);
db2=-20*log10(abs(fh2(1)./(abs(fh2)+eps)));
w=2/M*[0:M-1];
figure;
subplot(2,2,1);stem(h2);
grid on;
title('布莱克曼窗(N=33)');
xlabel('n');
ylabel('h(n)');
subplot(2,2,2);plot(w,abs(fh2)); grid on;
title('布莱克曼窗(N=33)'); xlabel('w');
ylabel('H(k)');
subplot(2,2,3);plot(w,db2);
grid on;
title('布莱克曼窗(N=33)'); xlabel('w');
ylabel('20lg(H(k)/H(0))'); subplot(2,2,4);plot(w,angle(fh2)); grid on;
title('布莱克曼窗(N=33)'); xlabel('w');
ylabel('相位特性');
三、提取50HZ基频信号
N=512;
t=0:1/512:1/512*(N-1);
x=sin(100*pi*t)+sin(200*pi*t)+sin(300*pi*t); Fx=fft(x,N);
w3=2/N*[0:N-1];
figure;subplot(2,1,1);plot(x);
grid on;
title('抽样信号');
xlabel('n');
ylabel('y(n)');
subplot(2,1,2);plot(w3,abs(Fx));
grid on;
title('抽样信号频谱');
xlabel('pi');
ylabel('Magnitude');
N=33;wc=0.4;
hd=ideal(N,wc);
w1=boxcar(N);
w2=blackman(N);
h1=hd.*w1';y1=conv(x,h1);
h2=hd.*w2';y2=conv(x,h2); figure;
subplot(2,1,1);plot(y1(1:64)); grid on;
title('矩形窗');
xlabel('n');
ylabel('y(n)');
subplot(2,1,2);plot(y2(1:64)); grid on;
title('布莱克曼窗');
xlabel('n');
ylabel('y(n)');
Fy1=fft(y1,N);
Fy2=fft(y2,N);
figure;
subplot(2,1,1);plot(abs(Fy1)); subplot(2,1,2);plot(abs(Fy2));。