信号与系统的频域分析专题研讨
【目的】
(1) 加深对信号与系统频域分析基本原理和方法的理解。
(2) 学会利用信号抽样的基本原理对信号抽样过程中出现的一些现象的进行分析。 (3) 通过实验初步了解频谱近似计算过程中产生误差的原因。 (4)学会用调制解调的基本原理对系统进行频域分析。
【研讨题目】 1.信号的抽样
频率为f0 Hz的正弦信号可表示为
x(t)?sin(2πf0t)
按抽样频率fsam=1/T对x(t)抽样可得离散正弦序列x[k]
x[k]?x(t)t?kT?sin(2π在下面的实验中,取抽样频率fsam=8kHz。
f0fsamk)
(1)对频率为2kHz, 2.2 kHz, 2.4 kHz和 2.6 kHz正弦信号抽样1 秒钟,利用MATLAB函数 sound(x, fsam)播放这四个不同频率的正弦信号。
(2)对频率为5.4 kHz, 5.6kHz, 5.8 kHz和 6.0kHz正弦信号抽样1 秒钟,利用MATLAB函数 sound(x, fsam)播放这四个不同频率的正弦信号。 (3)比较(1)和(2)的实验结果,解释所出现的现象。
【题目分析】
【信号抽样过程中频谱变化的规律】
【比较研究】
利用系统的Help,阅读函数sound和wavplay的使用方法。 连续播放两段音频信号,比较函数sound和wavplay的异同。 【系统测试】
利用系统的Help,阅读函数audiodevinfo的使用方法。 利用audiodevinfo测试你所使用的计算机系统支持的抽样频率。
【仿真结果】
【结果的理论分析和解释】
【自主学习内容】
【阅读文献】
【发现问题】 (专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
2. 连续时间信号Fourier变换的数值近似计算
计算连续信号频谱是对信号和系统进行频域分析的基础,由于实际信号大多无简单的解析表达式,所以要用数值方法进行近似计算。本题要求对频谱近似计算中误差的原因进行初步的分析,希望能在计算实际信号频谱的近似计算中起一定的指导作用。
若信号x(t)的非零值在t?0区间,则可用下面提供的函数ctft1或ctft2近似计算其频谱。函数ctft的调用形式为
[X,f]=ctft1(x,fsam,N)
[X,f]=ctft2(x,fsam,N)
其中调用变量x 存放信号x(t)的抽样值,fsam表示对连续信号x(t)的抽样频率(Hz),N表示用DFT进行近似计算时DFT 的点数,为了能高效的进行计算,N最好取2的整数次幂,如512, 1024等。返回变量X是计算出的信号频谱的抽样值,f(单位Hz)表示对应的频率抽样点。返回变量X一般是复数,可用函数abs(X)计算出幅度谱,函数angle(X) 计算出相位谱。
(1)阅读程序ctft2,叙述该程序的基本原理。该程序中有一处需要产生一个大的2维矩阵,指出该行程序,并评价该方法的优缺点。
(2)取抽样频率fsam=100Hz, 信号抽样长度N=1024, 分别用两个子程序近似计算信号
x(t)?e?tu(t)的频谱,比较两种方法的计算时间和误差;(可用tic, toc 计算程序运行时间)
(3)若将信号的时域有效宽度Δt定义为
0.1xmax?x(Δt)
其中xmax表示信号在时域的最大值。试分析时域有效宽度Δt对近似计算的影响。给出一个由信号时域有效宽度Δt估计近似计算中所需信号长度Td?N/fsam的经验公式。 (4)定义信号频域有效宽度Δf为
0.1Xmax?X(Δf)
其中Xmax表示信号在频域的最大值。给出一个由信号频域有效宽度Δf估计近似计算中所需
3
抽样频率fsam的经验公式。
(5)用计算机录分别一段男生和女生的语音信号,计算其频谱并比较其特点。
(6)讨论:计算误差产生的主要原因?如果不知信号的解析表达式,如何分析计算误差?
%近似计算连续信号频谱的函数 function [X,f]=ctft1(x,Fs,N) X=fftshift(fft(x,N))/Fs; f=-Fs/2+(0:N-1)*Fs/N;
function [X,f]=ctft2(x,Fs,N) tk=(0:N-1)/Fs;% 时域抽样点 dF=Fs/N; %频域抽样间隔 fm=(0:N/2)*dF; %频域抽样点
X=x*exp(-j*2*pi*tk'*fm)/Fs;% 近似计算信号频谱 f=[-fliplr(fm(2:end)) fm]; % 增添负频率点
X=[conj(fliplr(X(2:end))) X];% 增添频率点对应的频谱
【题目分析】
【仿真结果】
【结果分析】
分析误差产生的原因及解决问题的方法。
【自主学习内容】
【阅读文献】
【发现问题】 (专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
3.幅度调制和连续信号的Fourier变换
本题研究莫尔斯码的幅度调制与解调。本题中信号的形式为
x(t)?m1(t)cos(2πf1t)?m2(t)sin(2πf2t)?m3(t)sin(2πf1t)
(1)
其中信号x(t)由文件ctftmod.mat定义(该文件在硬盘上),可用命令Load ctftmod 将文件ctftmod.mat定义的变量装入系统内存。运行命令Load ctftmod后,装入系统的变量有
af bf dash dot f1 f2 t x
其中
bf af: 定义了一个连续系统H(s)的分子多项式和分母多项式。可利用freqs(bf,af,w)求出该系统的频率响应,也可用sys=tf(bf,af)得到系统的模型,从而用lsim求出信号通过该系统的响应。
dash dot: 给出了莫尔斯码中的基本信号dash和dot的波形 f1 f2: 载波频率 t: 信号x(t)的抽样点
x: 信号x(t)的在抽样点上的值
信号x(t)含有一段简单的消息。Agend 007的最后一句话是
The future of technology lies in ···
还未说出最后一个字,Agend 007就昏倒了。你(Agend 008)目前的任务就是要破解Agend 007的最后一个字。该字的信息包含在信号x(t)中。信号x(t)具有式(1)的形式。式中的调制频率分别由变量f1和f2给出,信号m1(t),m2(t)和m3(t)对应于字母表中的单个字母,这个字母表已用国际莫尔斯码进行编码,如下表所示:
H ···· A ·? O ????? I ·· B ?··· P ·??· C ?·?· D ?·· E · F ··?· G ? ?· J ·????? K ?·? L ·?·· M ??? N ?· Q ? ?·? R ·?· S ··· T ? U ··? V ···? W ·?? X ?··? Y ?·?? Z ??··
(1) 字母B可用莫尔斯码表示为b=[dash dot dot dot],画出字母B莫尔斯码波形; (2) 用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应;
(3) 利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果; (4)用解析法推导出下列信号的Fourier变换
m(t)cos(2πf1t)cos(2πf2t) m(t)cos(2πf1t)sin(2πf2t)
m(t)sin(2πf1t)sin(2πf2t)
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
(6)对信号m2(t)和m3(t)重复(5)。请问Agent 008
5
The future of technology lies in ···
【题目分析】
【方案设计】
【仿真结果】
【结果分析】
【自主学习内容】
【阅读文献】
【发现问题】 (专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】