信号与系统2022春季学期第六次作业

基础作业
目 录
Contents
傅里叶变换与反变换
傅里叶变换性质
信号频谱分析
周期信号的
傅里叶变换
证明数学虚幻模式
实验题目
利用MATLAB求信
号傅里叶变换
信号频谱内的信息

  ◎ 本文网络下载链接: 2022年春季第第六次作业 : https://zhuoqing.blog.csdn.net/article/details/123888362

  关于提交作业的基本要求,请参见: 通过提交两份作业综述对提交作业的基本要求

§01 础作业


1.1 傅里叶变换与反变换

1.1.1 求信号的傅里叶变换

  求下面所示单周期正弦脉冲和锯齿脉冲信号的傅里叶变换。

(1)必做题

 Ⅰ.正弦脉冲信号

▲ 图1.1.1 正弦脉冲信号

▲ 图1.1.1 正弦脉冲信号

提示:将sin函数转换成复指数叠加,再进行计算更加方便一些。

 Ⅱ.梯形脉冲信号

  请分别应用傅里叶变换的卷积性质微分性质 两种方法求取下面梯形信号的傅里叶变换。

▲ 图1.1.2 梯形脉冲信号

▲ 图1.1.2 梯形脉冲信号

提示:可以应用傅里叶变换卷积

(2)选做题

 Ⅰ.锯齿脉冲信号

▲ 图1.1.3 锯齿脉冲信号

▲ 图1.1.3 锯齿脉冲信号

提示:可以直接进行计算,利用分部积分进行计算。 也可以利用傅里叶变换的微分性质进行计算。

1.1.2 求傅里叶反变换

已知信号 f ( t ) f\left( t \right) f(t) 的傅里叶变换 F ( ω ) F\left( \omega \right) F(ω) 对应的幅度谱 ∣ F ( ω ) ∣ \left| {F\left( \omega \right)} \right| F(ω) 和相位谱 ϕ ( ω ) \phi \left( \omega \right) ϕ(ω) ,利用傅里叶反变换求取 f ( t ) f\left( t \right) f(t)

(1)必做题

▲ 图1.1.4 信号的幅度谱和相位谱

▲ 图1.1.4 信号的幅度谱和相位谱

(2)选做题

▲ 图1.1.5 信号的幅度谱和相位谱

▲ 图1.1.5 信号的幅度谱和相位谱

提示:这个题目没有什么好说的,是来练习FT反变换公式的。在现在,你们只要直接带入FT反变换公式就可以计算了。根据信号频谱的范围,确定FT反变换的区间。将信号的频谱(包括幅度谱和相位谱)表示成复指数形式参与计算比较简单。

1.1.3 求下列信号的傅里叶反变换

(1)必做题

 Ⅰ.第一小题

F ( ω ) = 1 ω 2 F\left( \omega \right) = {1 \over {\omega ^2 }} F(ω)=ω21

提示:利用频域微分定义:

(2)选做题

 Ⅰ.第二小题

F ( ω ) = 8 π δ ( ω ) + 5 ( j ω − 2 ) ( j ω + 3 ) F\left( \omega \right) = 8\pi \delta \left( \omega \right) + {5 \over {\left( {j\omega - 2} \right)\left( {j\omega + 3} \right)}} F(ω)=8πδ(ω)+(jω2)(jω+3)5

提示: 对 F ( ω ) F\left( \omega \right) F(ω) 进行因式分解,形成三项,然后再分别写出对应的傅里叶反变换后对应的时域信号。

1.2 傅里叶变换性质

1.2.1 求信号时域运算后对应的频谱

  已知信号 f ( t ) f\left( t \right) f(t) 的傅里叶变换:
  利用傅里叶变换性质确定下列信号的傅里叶变换。






(1)必做题

  必做题包括上述(1)、(3)、(5)三个小题;

(2)选做题

  选做题包括上述(2)、(4)、(6)三个小题;

注释:显然,这个题目就是希望通过傅里叶
变换的性质,完成信号傅里叶变换公式推导。
1:尺度,时域位移
2: 线性,频域微分(时域线性加权)
3: 尺度,频域微分
4:时域微分,频域微分
5:尺度,时域位移
6:线性,位移,反褶,频域微分

1.2.2 求下面一组信号的傅里叶变换






(1)必做题

  必做题包括上面(2)、(4)、(6)三个小题。

(2)选做题

  选做题包括上面(1)、(3)、(5)三个小题;

提示:
(1)

(2)直接代入公式求解最方便;
(3) e − a t ⋅ u ( t ) e^{ - at} \cdot u\left( t \right) eatu(t) 进行 cos ⁡ ( t ) \cos \left( t \right) cos(t) 调制;
(4)

(5)直接代入公式求解最方便;
(5)先确定 S a ( t ) Sa\left( t \right) Sa(t) 的傅里叶变换,然后按照 频移 S a ( t ) ⋅ e j ω 0 t Sa\left( t \right) \cdot e^{j\omega _0 t} Sa(t)ejω0t →频域微分: t ⋅ S a ( t ) ⋅ e j ω 0 t t \cdot Sa\left( t \right) \cdot e^{j\omega _0 t} tSa(t)ejω0t →时移: t ⋅ f ( t ) ⋅ e j ω 0 ( t − 3 ) t \cdot f\left( t \right) \cdot e^{j\omega _0 \left( {t - 3} \right)} tf(t)ejω0(t3)

1.3 信号频谱分析

1.3.1 信号相位变化对信号影响

  已知实数信号 f ( t ) f\left( t \right) f(t) 的傅里叶变换为 F ( ω ) F\left( \omega \right) F(ω) 。它的频谱如下图所示:

▲ 图1.3.1 信号f(t)的幅度谱和相位谱

▲ 图1.3.1 信号f(t)的幅度谱和相位谱

  信号 f a ( t ) , f b ( t ) , f c ( t ) , f d ( t ) f_a \left( t \right),f_b \left( t \right),f_c \left( t \right),f_d \left( t \right) fa(t),fb(t),fc(t),fd(t) 的幅度谱与 f ( t ) f\left( t \right) f(t) 的幅度谱相同,它们的相位谱分别如下面(a)、(b)、(c)、(d)所示,使用 f ( t ) f\left( t \right) f(t) 分别表示出 f a ( t ) , f b ( t ) , f c ( t ) , f d ( t ) f_a \left( t \right),f_b \left( t \right),f_c \left( t \right),f_d \left( t \right) fa(t),fb(t),fc(t),fd(t)

▲ 图1.3.2 四个信号的相位谱

▲ 图1.3.2 四个信号的相位谱

提示:这里主要考虑时移、反褶带来信号的相位变化。

1.3.2 信号平方的频谱

  已知信号 f ( t ) f\left( t \right) f(t) 的傅里叶变换为:
  如下图所示:
▲ 图1.3.3 信号的频谱

▲ 图1.3.3 信号的频谱

  求: f 2 ( t ) f^2 \left( t \right) f2(t) 的傅里叶变换, 并画出它的频谱图。

  提示:这一题目需要应用到FT的频域卷积定理;今天课程没有讲,大家参考课件中的定理。实际上,本题的主要目的是要求绘制出f(t)的频域与其自身的卷积。最后还需要考虑到2π的因子。

1.3.3 单边正弦、余弦频谱

(1)选做题

  已知阶跃函数和正弦、余弦函数的の傅里叶变换:

  求单边正弦信号和单边余弦信号的傅里叶变换。

提示:利用傅里叶变换频谱卷积定义,或者利用傅里叶变换频移性质求解。

1.3.4 三角脉冲调制信号的频谱

  已知三角脉冲信号 f 1 ( t ) f_1 \left( t \right) f1(t) 的傅里叶变换为:
  是利用傅里叶变换相关性质求解: f 2 ( t ) = f 1 ( t − τ 2 ) ⋅ cos ⁡ ( ω 0 t ) f_2 \left( t \right) = f_1 \left( {t - {\tau \over 2}} \right) \cdot \cos \left( {\omega _0 t} \right) f2(t)=f1(t2τ)cos(ω0t) 的傅里叶变换 F 2 ( ω ) F_2 \left( \omega \right) F2(ω)

▲ 图1.3.4 f1,f2信号的波形

▲ 图1.3.4 f1,f2信号的波形

  要求分别应用傅里叶变换的频移性质、品与卷积性质两种方式分别求解上述 F 2 ( ω ) F_2 \left( \omega \right) F2(ω)

1.4 周期信号的傅里叶变换

1.4.1 求以下两个周期信号傅里叶变换

  已知单个梯形脉冲和单个余弦脉冲的傅里叶变换,求下图所示的周期梯形信号和周期全波信号的傅里叶变化。

(1)必做题

  单个梯形信号的傅里叶变换:

  周期梯形信号波形如下图所示:

▲ 图1.4.1 周期梯形信号

▲ 图1.4.1 周期梯形信号

(2)选做题

  单个半波余弦脉冲信号的傅里叶变换:

▲ 图1.4.2 周期半波余弦(余弦信号全波整流)信号

▲ 图1.4.2 周期半波余弦(余弦信号全波整流)信号

提示: 三个:离散化 F p ( ω ) = ω 1 ⋅ ∑ n = − ∞ + ∞ F 0 ( n ω 1 ) ⋅ δ ( ω − n ω 1 ) F_p \left( \omega \right) = \omega _1 \cdot \sum\limits_{n = - \infty }^{ + \infty } {F_0 \left( {n\omega _1 } \right) \cdot \delta \left( {\omega - n\omega _1 } \right)} Fp(ω)=ω1n=+F0(nω1)δ(ωnω1)

1.5 证明数学虚幻模式

  这道题目内容来自于: Illusive patterns in math explained by ideas in physics 的启发。

▲ 图1.5.1  应用物理解释数学中的魔幻模式

▲ 图1.5.1 应用物理解释数学中的魔幻模式

1.5.1 必做题

  试通过傅里叶变换性质证明下面积分中,当 N = 1 , 2 , 3 , 4 , 5 , 6 , 7 N = 1,2,3,4,5,6,7 N=1,2,3,4,5,6,7 时,积分值严格等于 π \pi π 。当 N ≥ 8 N \ge 8 N8 之后,积分值就严格小于 π \pi π

1.5.2 选做题

  证明下面积分式的取值,当 N = 1 , 2 , ⋯   , 56 N = 1,2, \cdots ,56 N=1,2,,56 时,积分值都严格等于 π / 2 \pi /2 π/2 。当 N ≥ 57 N \ge 57 N57 后,积分值小于 π / 2 \pi /2 π/2

1.5.3 参考文献

§02 验题目


2.1 利用MATLAB求信号傅里叶变换

  在MATLAB 中使用 fourierifourer命令可以求取函数的傅里叶变换数学表达式。 请在MATLAB中使用相关命令求取下面信号的傅里叶变换和傅里叶逆变换。

2.1.1 傅里叶变换

(1)信号表达式


▲ 信号的波形

▲ 信号的波形

from headm import *

t = linspace(-2, 2, 1000)

plt.plot(t, t, label='f1(t)')
plt.plot(t, exp(-t**2), label='f2(t)')
plt.plot(t, exp(-t)*heaviside(t, 0.5), label='f3(t)')
plt.plot(t, heaviside(t+1,0.5)-heaviside(t-1,0.5), label='f4(t)')
plt.plot(t, (1-abs(t))*(heaviside(t+1, 0.5)-heaviside(t-1, 0.5)), label='f5(5)')

plt.xlabel("t")
plt.ylabel("f1(t)")
plt.grid(True)
plt.tight_layout()
plt.legend(loc='lower right')
plt.show()

(2)MATLAB命令

fourier((heaviside(t+1)-heaviside(t-1))*(1-abs(t)))'
fourier(heaviside(t+1)-heaviside(t-1))'
fourier(1/t)'
fourier(exp(-t^2))'
fourier(exp(-t)*heaviside(t))'

2.1.2 傅里叶逆变换

(1)信号频谱表达式

▲ 图2.1.2 频谱信号波形

▲ 图2.1.2 频谱信号波形

from headm import *

w = linspace(-2, 2, 1000)
plt.plot(w, w*exp(-3*w)*heaviside(w, 0.5), label='F1(w)')
plt.plot(w, 1/(1+w**2), label='F2(w)')
plt.plot(w, w, label='F3(w)')
plt.plot(w, heaviside(w+1, 0.5)-heaviside(w-1,0.5), label='F4(w)')

plt.xlabel("omiga")
plt.ylabel("F(omiga)")
plt.grid(True)
plt.legend(loc="upper right")
plt.tight_layout()
plt.show()

(2)MATLAB相关命令

ifourier(w*exp(-3*w)*heaviside(w))'+1
ifourier(1/(1+w^2))
ifourier(w)
ifourier(heaviside(w+1)-heaviside(w-1))

2.2 信号频谱内的信息

  普通的实数信号 f ( t ) f\left( t \right) f(t) 经过傅里叶变换之后,会产生一个复数频谱 F ( ω ) F\left( \omega \right) F(ω) 。根据实际需要,我们可以从复频谱中的实部虚部幅值相角获得我们需要的信息。

  根据傅里叶变换的“奇偶虚实”特性,我们知道:

  • 傅里叶变换的实部:对应信号的偶分量
  • 傅里叶变换的虚部:对应信号的奇分量

  那么信号频谱的幅值相角又反映了信号的什么信息?

  下面通过实验来让我们从 一个角度看看信号频谱的幅值、相角内包含的信息。

2.2.1 图片频谱中的幅值和相位信息

(1)实验数据

  实验灰度图像数据可以直接从本网页,鼠标右键点击“图片零存为” 获得。

▲ 图2.2.1 测试图片

▲ 图2.2.1 测试图片

(2)实验要求

  利用二维快速傅里叶变换,获得上灰度图像的频谱。 下给出了上述图片的幅度和相位谱。

▲ 图像的幅度和相位谱

▲ 图像的幅度和相位谱

import sys,os,math,time
import matplotlib.pyplot as plt
from numpy import *
import cv2

imageid = 3
filename = tspgetdopfile(imageid)
print(filename)

img = cv2.imread(filename)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

imgfft = numpy.fft.fft2(gray)
print(shape(imgfft))

imgabs = abs(imgfft)
imgabs[imgabs > 20000] = 20000
imgangle = angle(imgfft)

plt.subplot(1,2,1)
plt.imshow(imgabs)
plt.subplot(1,2,2)
plt.imshow(imgangle)
plt.show()

print('\a')
 Ⅰ.恢复幅度谱信息

  将计算结果中的相位都置为0, 进行傅里叶反变换, 获得图片频谱中幅度图像信息。

▲ 图2.2.3 原图像以及幅度谱恢复的图像信息

▲ 图2.2.3 原图像以及幅度谱恢复的图像信息

img0 = numpy.fft.ifft2(imgfft)
img1 = numpy.fft.ifft2(abs(imgfft))
img1[img1>255]=255

plt.subplot(1,2,1)
plt.imshow(abs(img0))
plt.subplot(1,2,2)
plt.imshow(abs(img1))
plt.show()

注意:请注意上述代码中,对于数组img1进行饱和处理的作用。

 Ⅱ.恢复相位谱信息

  将计算结果中的幅值都置为1, 进行傅里叶反变换,获得图片频谱中的相位图像信息。

▲ 原始图像以及相位恢复的图像信息

▲ 原始图像以及相位恢复的图像信息

img0 = numpy.fft.ifft2(imgfft)
img1 = numpy.fft.ifft2(imgfft/abs(imgfft))

plt.subplot(1,2,1)
plt.imshow(abs(img0))
plt.subplot(1,2,2)
plt.imshow(abs(img1))
plt.show()

(3)实验分析

  通过对比从图像频谱中的幅度和相位恢复结果来看,讨论图像中的结构信息主要是分布在幅度谱还是相位谱?

2.2.2 声音频谱中的幅值和相位信息

  对于声音信号进行相同的分析,分别从声音信号中的幅度谱和相位谱还原对应的声音,讨论一下从哪一部分可以听出原来的声音信号。

(1)数据准备

  下面我利用 Audacity音频录制软件 截取了 西瓜视频中降央卓玛经典歌曲《西海情歌 中的片段(时长1:15),转存成 .WAV文件。

▲ 图2.2.5  西海情歌

▲ 图2.2.5 西海情歌

  这个数据文件也可以从下面链接下载:

▲ 图2.2.6  截取音频信号

▲ 图2.2.6 截取音频信号

(2)数据处理

 Ⅰ.读取波形数据

  参考博文 电话双音频拨号声音中的干扰信号 中对于音频WAV文件的读写方法,将上述波形文件进行读取。

▲ 音乐片段波形

▲ 音乐片段波形

filename = r'D:\Temp\XIHaiLoveSong.wav'
from scipy.io import wavfile

sample_rate,sig = wavfile.read(filename)
printf(sample_rate, shape(sig))

plt.plot(sig)

plt.xlabel("Sample")
plt.ylabel("Wave")
plt.grid(True)
plt.tight_layout()
plt.show()
 Ⅱ.获取信号频谱幅度对应波形

▲ 幅度品返回的波形

▲ 幅度品返回的波形

 Ⅲ.获取信号相位幅度对应波形

▲ 相位谱恢复的信息

▲ 相位谱恢复的信息

from headm import *

filename = r'D:\Temp\XIHaiLoveSong.wav'
from scipy.io import wavfile

sample_rate,sig = wavfile.read(filename)

sigfft = numpy.fft.fft(sig)

siga = numpy.fft.ifft(sigfft/abs(sigfft)*1e7)
#siga[siga>=0x7fff]=0x7fff
#siga[siga<-0x7fff]=-0x7fff

outfile1 = r'd:\temp\1.wav'
wavfile.write(outfile1, sample_rate, siga.astype(int16))
plt.plot(siga.real)

plt.xlabel("Sample")
plt.ylabel("Wave")
plt.grid(True)
plt.tight_layout()
plt.show()

(3)数据讨论

  大家可以通过试听恢复的声音信号,看幅度谱中和相位谱恢复的音频中哪一个还可以听出原来的歌曲。


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/123888362