《数字信号》课程设计报告学院:信息科学与工程专业班级:通信1201一、 目的与要求是使学生通过上机使用Matlab 工具进行数字信号处理技术的仿真练习,加深对《信号分析与处理(自)》课程所学基本理论和概念的理解,培养学生应用Matlab 等工具进行数字信号处理的基本技能和实践能力,为工程应用打下良好基础。
二、 主要内容1.了解Matlab 基本使用方法,掌握Matlab 数字信号处理的基本编程技术。
掌握数字信号的基本概念。
2.用Matlab 生成几种典型数字信号(正弦信号、矩形信号、三角波信号等),并做幅频特性分析2.Matlab 编程实现典型离散信号(正弦信号、矩形信号、三角信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。
3.设计任意数字滤波器,并对某类型信号进行滤波,并对结果进行显示和分析。
4.利用matlab 求解差分方程,并做时域和频域分析。
用matlab 函数求解单位脉冲响应,并利用窗函数分离信号。
5.用matlab 产生窗函数,并做世玉和频域分析。
6.显示图像,理解图像的模型,将图像进行三原色分解和边缘分析。
三.课程设计题目一、1) 生成信号发生器:能产生频率(或基频)为10Hz 的周期性正弦波、三角波和方波信号。
绘出它们的时域波形2) 为避免频谱混叠,试确定各信号的采样频率。
说明选择理由。
3)对周期信号进行离散傅立叶变换,为了克服频谱泄露现象,试确定截取数据的长度,即信号长度。
分析说明选择理由。
4)绘出各信号频域的幅频特性和相频特性5)以正弦周期信号为例,观察讨论基本概念(频谱混叠、频谱泄漏、整周期截取等)。
二、已知三个信号()i a p n ,经调制产生信号31()()cos(/4)i i s n a p n i n π==∑,其中i a 为常数,()p n 为具有窄带特性的Hanning 信号。
将此已调信号通过信道传输,描述该信道的差分方程为 得到接收信号()()*()y n s n h n =1)分析Hanning 信号()p n 的时域与频域特性 2)分析已调信号()s n 的时域与频域特性() 1.1172(1)0.9841(2)0.4022(3)0.2247(4)0.2247()0.4022(1)0.9841(2) 1.1172(3)(4)y n y n y n y n y n x n x n x n x n x n --+---+-=--+---+-3)分析系统的单位脉冲响应()h n4)分析接收信号()y n 的频谱5)设计带通滤波器从接收信号()y n 中还原出三个已调信号。
三、图像信号相关处理 1)读入一幅彩色图像2)将彩色图像进行三原色分解,分解出R 、G 、B 分量,并用图像显示出来 3)将彩色图像灰度化,转换为灰度图像并显示4)对灰度图像用几种典型的边缘检测算子进行边缘检测,显示检测出的边缘。
四、实验图像及代码 1)周期性正弦波 fs=10;w=2*pi*fs; t=0:0.01:2; y=sin(w*t);plot(t,y);grid on; axis([0 2 -2 2]); title('正弦信号');00.10.20.30.40.50.60.70.80.91-2-1.5-1-0.500.511.52正弦信号矩形信号t=0:0.001:0.5;y=square(2*pi*10*t,50); plot(t,y);grid on;axis([0 0.5 -1.5 1.5]); title('周期方波信号')00.050.10.150.20.250.30.350.40.450.5-1.5-1-0.50.511.5周期方波信号三角波信号t=-0.3:0.01:0.3;y=sawtooth(10*pi*t,0.5); plot(t,y);grid on;axis([-0.3 0.3 -1.5 1.5]); title('三角波信号')-0.25-0.2-0.15-0.1-0.0500.050.10.150.20.25-1.5-1-0.50.511.5三角波信号2)为避免频谱混叠,试确定各信号的采样频率。
说明选择理由。
采样频率不能过低,必须fs>fm ,即采样频率必须大于最高截止频率的二倍(对采样频率的要求,即采样频率要足够大,采样的值要足够多,才能恢复原信号)。
上题中信号频率为10Hz ,则采样频率应该大于或等于20Hz ,这样采样离散信号能无失真的恢复到原来的连续信号。
一个频谱在区间(-w ,w )以外为零的频带有限信号,可以唯一的由其在区间间隔Ts 上的样点值所确定。
当采样频率小于两倍信号(这里指是信号)最大频率时,经过采样就会发生频谱混叠,这使得采样后的信号序列频谱不能真实地反映原信号的频谱。
所以在利用DFT 分析连续信号的频谱时,必须注意这一问题。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱交叠现象不致出现。
也就是说,在确定采样频率之前,必须对信号的性质有所了解,一般在采样前,信号通过一个防混叠低通滤波器。
N=200; T=1;t=linspace(0,T,N); x=sin(2*pi*10*t); dt=t(2)-t(1); f=1/dt; X=fft(x); F=X(1:N/2+1);f=f*(0:N/2)/N; subplot(2,1,1) plot(t,x)title('x=sin(2*pi*10*t)') xlabel('t')ylabel('Amplitude') axis([0,1,-1,1]); subplot(2,1,2) plot(f,abs(F))xlabel('Frequency'); ylabel('|X(e^{jw})|')00.10.20.30.40.50.60.70.80.91-1-0.500.51x=sin(2*pi*10*t)tA m p l i t u d e102030405060708090100020406080100Frequency|X (e j w )|当N 取50时则为00.10.20.30.40.50.60.70.80.91-1-0.500.51x=sin(2*pi*10*t)tA m p l i t u d e5101520250510152025Frequency|X (e j w )|对于方波:00.10.20.30.40.50.60.70.80.91-1-0.500.51x=square(2*pi*10*t,50)tA m p l i t u d e010203040506070809010050100150Frequency|X (e j w )|对于三角波:00.10.20.30.40.50.60.70.80.91-1-0.500.51x=sawtooth(10*pi*t,0.5);tA m p l i t u d e010203040506070809010050100Frequency|X (e j w )|3)所谓频谱泄漏,就是信号频谱中各谱线之间相互影响,使得测量结果偏离实际值,同时在谱线两侧其他频率点上出现一些幅值较小的假谱。
导致频谱泄漏的原因是采样频率和信号频率的不同步,造成周期采样信号的相位在始端和终端不连续。
采样不同步是造成频谱泄漏的根本原因。
当采样同步,窗口宽度等于整数个周期,矩形框的过零点与离散频点正好对齐,就没有泄漏,窗口宽度不是整数个周期,谐波频谱分布不再是一条谱线而是在整个频域内分布,频谱之间相互干扰,出现频谱泄漏。
综上所述,减少采样的同步误差是抑制频谱泄漏的根本措施。
所以截取数据的长度最好是信号周期的整数倍。
泄漏指的是信号频谱中各谱线之间相互影响,使得测量结果偏离实际值,同时在谱线两侧其他频率点上出现一些幅值较小的假谱。
导致频谱泄漏的原因是采样频率和信号频率的不同步,造成周期采样信号的相位在始端和终端不连续。
f1=10;t=0:0.1:100; fs=100; T=1/fs;n=0:200; %保证n*T<t xt=sin(2*pi*f1*t); xn=sin(2*pi*f1*n*T); subplot(2,1,1); plot(n,xn);xlabel('n');ylabel('xn'); title('离散的时域序列');N=100; %保证N<n wn=boxcar(N);Wn=[wn' zeros(1,200-N+1)]; %保证维度一样 Xn=Wn.*xn;M=128; %采样点数Xm=abs(fft(Xn,M)/(M/2));% M 点FFT 变换 subplot(2,1,2)f=linspace(0,fs,M); plot(f,Xm);xlabel('f(Hz)'); ylabel('幅度');title('加矩形窗处理后的频域函数');020406080100120140160180200-1-0.500.51nx n离散的时域序列10203040506070809010000.20.40.60.8f(Hz)幅度加矩形窗处理后的频域函数4)绘出各信号频域的幅频特性和相频特性 正弦信号 a=sin(20*pi*t)t=0:0.001:0.999; subplot(311) a=sin(20*pi*t);plot(t,a);grid on;title('sin20pi*t');xlabel('T'); b=fft(a); subplot(312);stem(t*1000,abs(b)/1000,'fill');xlabel('Hz'); axis([-10 50 0 0.5]); grid on;title('频率特性') subplot(313)stem(t*1000,angle(b)/1000,'fill');xlabel('Hz'); axis([0 100 -0.004 0.004]) grid on;title('相频特性')00.10.20.30.40.50.60.70.80.91-11sin20pi*tT00.5Hz 频率特性0102030405060708090100-3Hz相频特性方波信号a=square(2*pi*t,50)t=0:0.001:0.5;a=square(2*pi*10*t,50); subplot(311)plot(t,a);grid on;axis([0 0.5 -1.5 1.5]); title('周期方波信号') b=fft(a); subplot(312)stem(t*100,abs(b)/100,'fill'); axis([0 50 0 4]);grid on;title('频率特性') subplot(313)stem(t*100,angle(b)/100,'fill');axis([0 5 -0.04 0.04]); grid on;title('相频特性')00.050.10.150.20.250.30.350.40.450.5-101周期方波信号频率特性0.511.522.533.544.55相频特性三角波信号t=-0.3:0.01:0.3;a=sawtooth(10*pi*t,0.5); subplot(311)plot(t,a);grid on;axis([-0.3 0.3 -1.5 1.5]); title('三角波信号') b=fft(a); subplot(312)stem(t*100,abs(b)/100,'fill'); axis([0 50 0 0.5]);grid on;title('频率特性') subplot(313)stem(t*100,angle(b)/100,'fill'); axis([0 25 -0.04 0.04]); grid on;title('相频特性')-0.25-0.2-0.15-0.1-0.050.050.10.150.20.25-11三角波信号00.5频率特性0510152025-0.04-0.0200.020.04相频特性5)以正弦周期信号为例,观察讨论基本概念(频谱混叠、频谱泄漏、整周期截取等)。