想要文档联系我qq:1260157543,免费发给你文档,哈哈
一、课程设计目的:
1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。
2.提高综合运用所学知识独立分析和解决问题的能力;
3.熟练使用一种高级语言进行编程实现。
二、课程设计要求
1、使用MATLAB开发工具编程实现上述内容(题目1,题目2,题目3)。
2、预习课程设计任务书,熟悉设计内容、理解设计要求、提出基本设计方案。在设计过程中,应该勤于思考、独立编写程序、独立调试程序,按时完成课程设计任务。
三、课程设计内容与分析
题目 1:
(1)已知xa(t)=e-1000|t|,求其傅里叶变换Xa(jΩ),画出模拟信号及其连续时间傅里叶变换的曲线图。
(2) 以Xa(t)为例,说明采样频率对频率响应的影响,分别采用fs=1000Hz 和fs=5000Hz,绘出X(ejw)曲线。
说明:本题目要求掌握 Matlab环境下连续傅里叶变换的实现方法,体会采样频率对频率响应的影响,通过编程实现加深对这些概念的理解。
题目 2:已知时域信号 x(n) = cos(0.48πn) + cos(0.52πn),求下面 5 种情况的 X (e jω)和X (k ) 。
(1)取 x(n)的前10点数据,求 N = 10 点的X (e jω)和X (k ) ,并作图。
(2)将(1)中的x(n)补零至 100 点,求N = 100 点的X (e jω)和X (k ) ,并作图。
(3)取x(n)的前100点数据,求 N = 100点的X (e jω)和X (k ) ,并作图。
(4)取x(n)的前128点数据,求 N = 128点的X (e jω)和X (k ) ,并作图。
(5)取x(n)的前50点数据,求 N = 50点的X (e jω)和X (k ) ,并作图。
讨论以上 5 种情况的区别。
说明:本题目要求掌握 Matlab 环境下离散傅里叶变换的实现方法,考察对频谱混叠失真、 频谱泄漏、栅栏效应以及频率分辨力等概念的认识,通过编程加深对这些概念的理解。
题目 3:基于 Matlab 的数字滤波器设计。
低通滤波器的常用指标如下所示:
分别用 IIR 和 FIR 两种数字滤波器类型进行设计, 并给出 IIR 数字滤波器参数和 FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
四 、设计程序代码分析及结果
题目 1-1:代码如下:
close all
clear
clc
% 模拟信号
Dt=0.00005; t=-0.005:Dt:0.005; xa=exp(-1000*abs(t));
%连续时间傅立叶变换
Wmax=2*pi*2000;
K=500;k=0:1:K;
W=k*Wmax/K; Xa=xa*exp(-j*t'*W)*Dt; Xa=real(Xa);
W=[-fliplr(W),W(2:501)]; %频率从-Wmax to Wmax
Xa=[fliplr(Xa),Xa(2:501)]; %Xa 介于 -Wmax和 Wmax之间
subplot(1,1,1)
subplot(2,1,1);plot(t*1000,xa);
xlabel('t 毫秒'); ylabel('xa(t)'); title('模拟信号')
subplot(2,1,2);
plot(W/(2*pi*1000),Xa*1000);
xlabel('频率(单位:KHz)'); ylabel('Xa(jW)*1000')
title('连续时间傅立叶变换')
结果显示:
题目 1-2:代码如下:
close all
clear
clc
tf=10;N=100;
dt=10/N;t=(1:N)*dt;T=-10:10;
wf=100; Nf=50;
w1=linspace(0,wf,Nf);dw=wf/(Nf-1);
W1=-50:50;
Xat=exp(-1000*abs(t));
F1=Xat*exp(-1i*t'*w1)*dt;
w=[-fliplr(w1),w1(2:Nf)];
Y1=(exp(2)-1)./(exp(2)-exp(1-1i*W1)-exp(1+1i*W1)+1);
Y2=(exp(1i*W1)./(exp(0.2)-exp(1i*W1))+exp(-1i*W1)/(exp(0.2)-exp(-1i*W1)));
F=[fliplr(F1),F1(2:Nf)];
t=[-fliplr(t),t];
Xat1=exp(-1000*abs(T));
subplot(2,2,1);plot(T,Xat1,'linewidth',1.5);grid
xlabel('t');ylabel('Xa(t)');title('Xa(t)--模拟信号');
subplot(2,2,2);plot(w,F,'linewidth',1.5);grid
xlabel('w');ylabel('Xa(jΩ)');title('Xa(jΩ)--傅里叶变换');
subplot(2,2,3);plot(W1,Y1,'linewidth',1.5);grid
xlabel('w');ylabel('X1(e^jw)');title('fs=1000Hz的X(e^jw)');
subplot(2,2,4);plot(W1,Y2,'linewidth',1.5);grid
xlabel('w');ylabel('X2(e^jw)');title('fs=5000Hz的X(e^jw)');
结果显示:
题目 2-1:代码如下:
close all
clear
clc
n=(0:1:9);
y=cos(0.48*pi*n)+cos(0.52*pi*n);
n1=(0:1:9);
x=y(1:1:10);
subplot(3,1,1);
stem(n1,x);
title('x(n) (0<=n<=9)');
xlabel('n');ylabel('x(n)');
axis([0,10,-2.5,2.5]);
w=linspace(0,2*pi,length(x));
xw=x*exp(-j*[1:length(x)]'*w);
magx=abs(xw);
subplot(3,1,2);
plot(w,magx);
title('DTFT');
xlabel('w');ylabel('x(jw)');
axis([0,2*pi,0,10]);
subplot(3,1,3);
x1=fft(x);magx1=abs(x1);
stem(n1,abs(magx1));
title('DFT');xlabel('k');ylabel('x(k)');
axis([0,10,0,10]);
结果显示:
分析:由于截断函数的频谱混叠作用,X(K)不能正确分辨w1=0.48*pi,w2=0.52*pi这两个频率分量。
题目 2-2:代码如下:
close all
clear
clc
n=(0:1:9);
y=cos(0.48*pi*n)+cos(0.52*pi*n);
n1=(0:1:99);
x=[y(1:1:10),zeros(1,90)];
subplot(3,1,1);
stem(n1,x);
title('x(n) (0<=n<=99)'); xlabel('n');
axis([0,100,-2.5,2.5]);
w = linspace(0,2*pi,length(x));
xw = x*exp(-j*[1:length(x)]'*w);
magx=abs(xw); subplot(3,1,2);
plot(w,magx);
title('DTFT');
xlabel('w');
axis([0,2*pi,0,10]);
subplot(3,1,3);
x1=fft(x);magx1=abs(x1);
stem(n1,abs(magx1));
axis([0,100,0,10]);
xlabel('frequency in pi units');
title('DFT');
结果显示:
分析:虽然x(n)补零至100点,X(K)的密度,截断函数的频谱混叠作用没有改变,这时的物理分辨率使X(K)仍不能正确分辨w1=0.48*pi,w2=0.52*pi这两个频率分量。
题目 2-3:代码如下:
close all
clear
clc
n=(0:1:99);
x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(3,1,1);
stem(n,x);
title('x(n) (0<=n<=99)');
xlabel('n');
axis([0,100,-2.5,2.5]);%axis([xmin xmax ymin ymax])
w = linspace(0,2*pi,length(n));
xw = x*exp(-j*[1:length(n)]'*w);
magx=abs(xw);
subplot(3,1,2);
plot(w,magx);
title('DTFT'); xlabel('w');
axis([0,2*pi,0,10]);
subplot(3,1,3);
x1=fft(x);
magx1=abs(x1);
stem(n,abs(magx1));
axis([0,100,0,10]);
title('DFT'); xlabel('frequency in pi units');
结果显示:
分析:截断函数的加宽且为周期序列的整数倍,改变了频谱混叠作用,提高了“物理”分辨率使X(K)能正确分辨w1=0.48*pi,w2=0.52*pi这两个频率分量。
题目 2-4:代码如下:
close all
clear
clc
n=(0:1:127);
x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(3,1,1);
stem(n,x);
title('x(n) (0<=n<=127)'); xlabel('n');
axis([0,127,-2.5,2.5]);
w = linspace(0,2*pi,length(n));
xw = x*exp(-j*[1:length(n)]'*w);
magx=abs(xw);
subplot(3,1,2);
plot(w,magx);
title('DTFT');xlabel('w');
axis([0,2*pi,0,70]);
subplot(3,1,3);
x1=fft(x);
magx1=abs(x1);
stem(n,abs(magx1));
axis([0,128,0,10]);
title('DFT'); xlabel('frequency in pi units');
结果显示:
分析:截断函数虽进一步加宽,但不是周期序列的整数倍,所以尽管 X(K)能正确分辨w1=0.48*pi,w2=0.52*pi这两个频率分量,但还是呈现除了频谱泄露。
题目 2-5:代码如下:
close all
clear
clc
n=(0:1:49);
x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(3,1,1);
stem(n,x);
title('x(n) (0<=n<=49)');
xlabel('n');
axis([0,49,-2.5,2.5]);
w = linspace(0,2*pi,length(n));
xw = x*exp(-j*[1:length(n)]'*w);
magx=abs(xw);
subplot(3,1,2);
plot(w,magx);
title('DTFT');xlabel('w');
axis([0,2*pi,0,30]);
subplot(3,1,3);
x1=fft(x);
magx1=abs(x1);
stem(n,abs(magx1));
axis([0,50,0,10]);
title('DFT'); xlabel('frequency in pi units');
结果显示:
分析:截断函数的宽度正好为序列的周期,即这时的“物理”分辨率使X(K)正好能正确分辨w1=0.48*pi,w2=0.52*pi这两个频率分量。
题目 3-1:代码如下:
close all
clear
clc
wp=[0.45,0.65];ws=[0.3,0.75];
Rp=1;Rs=40;
[N,wc]=buttord(wp,ws,Rp,Rs); %求阶数N及频率参数wc
[B,A]=butter(N,wc); %设计巴特沃斯滤带通波器
[H,w]=freqz(B,A); %求频响
subplot(2,1,1);
plot(w/pi,abs(H)); %画幅频
title('IIR数字滤波器');
xlabel('w/pi');ylabel('幅频频响曲线');
subplot(2,1,2);
plot(w/pi,angle(H)); %画相频
xlabel('w/pi');ylabel('相位频响曲线');
得参数:
N = 7
wc = 0.4284 0.6693
B = 0.0003 0 -0.0019 0 0.0057 0 -0.0095 0
0.0095 0 -0.0057 0 0.0019 0 -0.0003
A = 1.0000 1.7451 4.9282 6.1195 9.8134 9.2245 10.4323
7.5154 6.4091 3.4595 2.2601 0.8470 0.4167 0.0856 0.0299
结果显示:
题目 3-2:代码如下:
close all
clear
clc
ws1=0.3*pi;ws2=0.75*pi;wp1=0.45*pi;wp2=0.65*pi;
wb=(wp1-ws1+ws2-wp2)/2; %计算过渡带宽
wc=[wp1/pi-(wp1-ws1)/(2*pi),wp2/pi+(ws2-wp2)/(2*pi)]; %设置带通截止频率
N=ceil(3.3*2*pi/wb); %计算窗口长度
b=fir1(N,wc); %设计滤波器系数
n=0:N;
hn=b(n+1); %求冲激响应
[H,w]=freqz(b,1); %求频率响应
subplot(2,1,1);
plot(w/pi,abs(H)); %画幅频
title('FIR数字滤波器');
xlabel('w/pi');ylabel('幅频频响曲线');
subplot(2,1,2);
plot(w/pi,angle(H)); %画相频
xlabel('w/pi');ylabel('相位频响曲线');
得冲激响应:
hn =b(n+1)=
0.0011 0.0005 0.0001 0.0006 -0.0031 -0.0008 0.0051 -0.0002
-0.0002 -0.0016 -0.0109 0.0087 0.0149 -0.0098 -0.0018 -0.0119
-0.0145 0.0463 0.0118 -0.0445 0.0003 -0.0340 0.0250 0.1591
-0.1126 -0.2397 0.2135 0.2135 -0.2397 -0.1126 0.1591 0.0250
-0.0340 0.0003 -0.0445 0.0118 0.0463 -0.0145 -0.0119 -0.0018
-0.0098 0.0149 0.0087 -0.0109 -0.0016 -0.0002 -0.0002 0.0051
-0.0008 -0.0031 0.0006 0.0001 0.0005 0.0011
结果显示:
分析实验结果:
IIR滤波器阶数比FIR少。
1:IIR滤波器存在着输出对输入的反馈,因此可以用比FIR滤波器少的阶数来满足技术指标,这样,IIR滤波器所用的存储单元和所需的运算次数都比FIR滤波器少。
2:IIR滤波器主要是设计规格化的、频率特性为分段常数的标准低通、高通、带通、带阻和全通滤波器,而FIR滤波器可设计出理想正交变换器、理想微分器、线性调频器等各种网络,适应性较广。
五、自我评价和总结
认识:通过课设进一步了解与课程相关知识。掌握 Matlab 环境下连续傅里叶变换的实现方法,体会采样频率对频率响应的影响;掌握 Matlab 环境下离散傅里叶变换的实现方法,考察对频谱混叠失真、频谱泄漏、栅栏效应以及频率分辨力等概念的认识;了解IIR 和 FIR 两种数字滤波器类型的实现形式和特点;通过编程实现加深对这些概念的理解。
过程:在这一过程中,通过自己查阅资料,并结合课程学到的知识。完成课程内容。其间,与同学一起解决问题,缩短了时间周期,更好的完成课程内容。
问题:一些题有不同的解决方法,在题目1中需要结合课程相关的公式才能推出,感觉还是有点对本课程还是不太熟悉,课下还需加强对本课程的基本知识点进行巩固。为以后打下基础做准备。
体会:通过本次课程,收货良多;可是还是对一些基本知识点不熟悉0。希望再接再厉。