高通滤波器系统函数的测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安电子科技大学课程实验报告
实验名称
学院班Array姓名学号
同作者
实验日期年月日
2、任务与要求
任务一
①利用matlab模拟高斯白噪声,观察高斯白噪声的时域和频域波形%产生高斯白噪声
F=10000;
T=10;
n=round(T*F);
t=linspace(0,T,n);
noise=wgn(1,n,0);
figure;
plot(t,noise);
title('高斯白噪声时域');
xlabel('t/s');
ylabel('幅度');
fft_noise=fftshift(fft(noise));%高斯白噪声双边谱
f=linspace(-F/2,F/2,n);
figure;
plot(f,abs(fft_noise));
title('高斯白噪声频域');
xlabel('f/Hz');
ylabel('幅度');
波形如下:
②利用matlab模拟高通滤波器,并观察其幅频特性曲线%建立高通滤波器
B=2000;%高通滤波器截止频率
fs=10000;%=F
b=fir1(150,B/(fs/2),'high');%高通滤波器
figure;
freqz(b);
幅频特性如下:
③让信号通过高通滤波器,观察输出x(t)的时域和频域波形x(t)x=filter(b,1,noise);%高斯白噪声通过高通滤波器
figure;
plot(t,x);
title('滤波后信号时域');
xlabel('t/s');
ylabel('幅度');
fft_x=fftshift(fft(x));
p=linspace(-fs/2,fs/2,n);%双边带
figure;
plot(p,abs(fft_x));%abs 绝对值
title('滤波后信号频谱');
xlabel('f/Hz');
ylabel('幅度');
波形如下:
④将原始高斯白噪声与x(t)进行互关运算,结果为a(t),观察a (t)的时域和频域波形;
noise和x(t)进行互关运算
[a,b]=xcorr(noise,x);%进行互相关运算
figure;
tau=(-length(noise)+1:length(noise)-1)/10000;
plot(tau,a);
fft_a=fft(a);
figure;
cno=abs(fft_a);
f1=(0:length(fft_a)-1)*10000/length(fft_a); plot(f1(1:length(f1)/2),cno(1:length(f1)/2),'-b'); title('a(t)的频谱');
xlabel('f/Hz');
ylabel('幅度');
波形如下:
⑤利用matlab模拟低通滤波器,并观察低通滤波器的幅频特性;建立低通滤波器
Fs=10000;%Fs=fs=F
T=1/Fs;
wp=2000/Fs; %边界频率归一化
ws=2800/Fs;
Rp=1;
As=40;
[N,wc]=buttord(wp,ws,Rp,As);
[B,A]=butter(N,wc); %设计数字滤波器
[H,w]=freqz(B,A);
figure;
plot(w/pi,abs(H));
title('低通数字滤波器');
xlabel('\omega/\pi');
幅频特性曲线如下:
⑥将a(t)通过低通滤波器,输出为y(t),观察y(t)的时域和频域波形;
%通过低通滤波器
h=ifft(H);
y=conv(h,a);
t2=(0:length(y)-1)*10000/length(y);
figure;
plot(t2,y,'-r');
title('y(t)');
figure; X=fft(y);
cmo=abs(X);
f2=(0:length(X)-1)*10000/length(X);
plot(f2(1:length(f2)/2),cmo(1:length(f2)/2),'-b');
title('y(t)的频谱);
xlabel('f/Hz');
ylabel('幅度);
t3=(-length(y)+1:length(y)-1)/10000; E=mean(noise);
S=var(noise);
E2=S+E*E;
波形如下:
任务二