信号与系统课程设计
发布时间:2024-11-28
发布时间:2024-11-28
1.课程设计目的:
综合运用本课程的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,并利用MATLAB作为编程工具进行计算机实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
2.课程设计内容及要求: 题目一 FFT对连续信号进行谱分析
若信号由20Hz,220 Hz和750Hz三个正弦频率成分构成,试用FFT计算其频谱并画出其幅度谱(要求横坐标以Hz为单位),验证信号包含的频率成分。
题目二 FFT对离散信号进行谱分析 1. 计算序列的DTFT和DFT,观察栅栏效应
设x(n) R4(n),要求用MATLAB实现:
(1)计算x(n)的傅里叶变换X(ej ),并绘出其幅度谱;
(2)分别计算x(n)的4点DFT和8点DFT,并绘出其幅度谱。并说明它们和
X(ej )的关系。
(提示:DFT变换可用MATLAB提供的函数fft实现) 2. 计算序列的FFT,观察频谱泄漏
10 12
n) cos(n)。 1616
(1) 截取一个周期长度M=16点,计算其16点FFT其频谱,并绘出其幅度
谱;
(2) 截取序列长度M=10点,计算其16点FFT其频谱,绘出其幅度谱,并
与(1)的结果进行比较,观察频谱泄漏现象,说明产生频谱泄漏的原因。
已知周期为16的信号x(n) cos(
题目三 线性卷积和循环卷积的比较
设x1(n)和x2(n)是两个4点序列,x1(n) {1,2,2,1},x2(n) {1, 1,1, 1},
要求用MATLAB实现:
(1) 计算x1(n)与x2(n)的线性卷积;
(2) 分别计算x1(n)与x2(n)的6、7、8点循环卷积。 思考:
(1) 线性卷积与循环卷积的关系;
(2) 什么条件下,线性卷积与循环卷积相等?
3.分析、源程序及运行结果
§题目一 :
【分析】设x(t) 0.25sin(2 20t) 0.5sin(2 220t) sin(2 750t) 由于x(t)是周期信号,首先要确定该信号的周期,如果截取信号时没有至少一个完整周期的信号,则会发生泄漏现象。
∵2 20:2 220:2 750 2:22:75
2
0.1s ∴信号x(t)的周期为2
2 20
因此,截取信号的持续时间最好为0.1s的整数倍。
信号x(t)的最高频率为Fh 750Hz,因此,采样频率或采样间隔需满足
fs 2Fh 1500Hz,T
1
0.667ms 2Fh
取采样频率和采样间隔分别为:fs 2000Hz,T 0.5ms DFT的点长N从持续时间中算得
N
tpT
0.1s
200 0.5ms
令t=nT, n=0,1,2,…,199,代入原信号,得
x(n) 0.25sin(2 20 n 0.5 0.001) 0.5sin(2 220 n 0.5 0.001)
sin(2 750 n 0.5 0.001) 0.25sin(0.02 n) 0.5sin(0.22 n) sin(0.75 n)利用FFT计算200点的DFT。
【源程序代码】
n=0:200;
x=0.25*sin(0.02*pi.*n)+0.5*sin(0.22*pi.*n)+sin(0.75*pi.*n); F1=abs(fft(x));
F2=abs(fft(x,200)); %计算200点的DFT
stem(F1);axis([0 200 0 100]);xlabel('Hz') subplot(212)
Hz
Hz
x(n) R4(n)
§题目二:
【分析1】对于 ,可以写为x(n)=u(n)-u(n-4),其傅里叶变换为:
X(e) x(n)e
j
n 03
j n
nk
; 4点DFT为:DFT[x(n)] x(n)WN,0 k 3
n 03
nk
8点DFT为:DFT[x(n)] x(n)WN,0 k 7 ,在MATLAB中,DFT可以用
n 0
7
fft 函数来快速实现。 【源程序代码1】
n=-2:6;
M=input('M='); k=0:M-1; x=u(n)-u(n-4);
X=x*(exp(-j*2*pi/M)).^(n'*k);
F1=abs(X);F2=abs(fft(X,4));F3=abs(fft(X,8)); subplot(311)
plot(F1); title('x(n)的傅里叶变换') subplot(312)
stem(F2);title('x(n)的4点DFT')
stem(F3);title('x(n)的8点DFT')
x(n)的傅里叶变换
4
【
11002
2468
x(n)的4点DFT
10121416
1.522.5x(n)的8点DFT
33.54
2345678
由图可以得到x(n)的4点DFT就是对x(n)的傅里叶变换在 DFT就是对x(n)的傅里叶变换在
k2
时的采样,而x(n)的8点
k4
时的采样。
【分析
2】 序列x(n) cos(
10 12
n) cos(n)是周期为16的序列,对应的频谱为离散的, 1616
N 1n 0
nk
X(k) DFT[x(n)] x(n)WN,0 k N 1 ,在MATLAB中用fft
快速傅里叶变
换函数实现。 【源程序代码2】
n=-8:8;
M=input('M='); k=0:M-1;
x=cos(10*pi.*n/16)+cos(12*pi.*n/16); X=x*(exp(-j*2*pi/M)).^(n'*k); F=abs(X); stem(F)
由上面两图进行比较,第二幅发生了频谱泄露,分析其原因为截取了序列的有限长度(长度没有达到一个周期的长度)。
§题目三:
【分析】x1(n)与x2(n)的N点循环卷积定义y(n) [ x2(m)x1((n m))N]RN(n)
N 1
x1(m)x2(m)
x2((m))N
x2(( m))N
x2(( m))NRN(m)
x2((n m))NRN(m)
当n 0,1,2, ,N 1时,分别将x1(m)与x2((n m))NRN(m)相乘,并在m 0到
N 1区间内求和,便得到x1(n)与x2(n)的循环卷积y(n)。
【源程序代码1】
x1=[1 2 2 1]; x2=[1 -1 1 -1]; y=conv(x1,x2); subplot(131)
stem(x1);title('序列x1(n)') subplot(132)
stem(x2);title('序列x2(n)') subplot(133)
21.81.61.41.2
1
与
列积
1
0.80.60.40.2
0-0.2-0.4-0.6-0.8
0.80.60.40.2
0-0.2-0.4-0.6-0.8
-1
10.80.60.40.2
0-1
【源程序代码2】(方法一)
x1=[1 2 2 1]; x2=[1 -1 1 -1]; N=input('N=');
x1=[x1,zeros(1,N-length(x1))]; x2=[x2,zeros(1,N-length(x2))]; m=0:N-1; x=zeros(N,N); for n=0:N-1;
x(:,n+1)=x2(mod((n-m),N)+1)'; end Z=x1*x;
stem(Z);
【源程序代码2】(方法二)
x1=[1 2 2 1]; x2=[1 -1 1 -1]; N=input('N='); x11=fft(x1,N); x12=fft(x2,N); y11=x11.*x12;
N=6
N=7 N=8
比较循环卷积的三幅图与线性卷积的第三幅图,容易看出,当所取的循环卷积的长度不小于序列x1(n)与序列x2(n)的长度之和减一时,线性卷积的结果与循环卷积的结果相同。
4.课程设计小结
时间过得很快,短短的一个学期,我们就上完了信号与系统的上半册,主
要学了各种信号以及对信号的分析和处理方法,本次课程设计主要是讨论序列的分析,所用的方法就是傅里叶变换,而用傅里叶变换进行频谱分析是信号分析的核心。
本次信号与系统课程设计是在学完整个学期的课程之后而进行的,因此既是对所学知识的巩固,也是对知识的灵活运用,更是对知识的一种创新。在设计的过程中,我做到了完全的独立思考,虽然遇到过一些小问题,但经过自己不断钻研,终于战胜了一个个困难。不过,再仔细还是不可避免的会出现一些错误,恳请老师批评指正。课程设计的内容较简单,在所学知识的基础下,完全可以理解并做出来,我觉得当我们认认真真地完成了实验之后,总是会有很多收获的。
经过本学期的课程学习以及课程设计,我对信号与系统这门课已有了较深的认识,已逐渐在脑海中形成了一个体系,相信对接下来信号与系统下半部分的学习将会有很大的帮助。
7