一、实验目的

1.将一个信号从某一给定的采样率转换到另一不同采样率,即采样率转换。

2.对信号进行滤波。

3.有一个模拟频率为img的单频正弦信号,img。现以采样率为img进行采样,得到

imgimg

对上面采样的信号隔点抽取,形成一新的序列,

img

现以采样率为2倍的img进行采样,得到

imgimg

(1)使用MATLAB自带的播放器进行播放。(注:sound(x,fs))

根据听到的三种不同声音,解释出现这种情况的原因。

(2)根据内插公式(选择合适的img):

img

img重新以2倍的img采样得到img。使用MATLAB自带的播放器进行播放,听听该声音。并统计误差

img

在一张图上,绘制2倍采样信号与2倍内插信号的时域波形。

绘制2倍采样信号与2倍内插信号的时域波形差。

在一张图上,绘制原始信号、2倍降采样信号、2倍采样信号、2倍内插信号的频谱图。

二、实验原理

滤波器设计与实现是数字信号处理中最基本的内容之一。滤波器分IIR滤波器(无限冲激响应滤波器)和FIR滤波器(有限冲激响应滤波器)两种。

FIR滤波器的设计方法以直接逼近所需离散设计系统的频率响应为基础。FIR滤波器可以很容易地获得线性相移特性,不存在不稳定的问题,是实际系统中广为采用的一种数字滤波器。FIR滤波器的设计,通常有窗函数设计法、频率抽样设计法和最佳逼近设计法。窗函数设计法比较简单,它的频率特性是理想滤波器频谱与窗的频谱的卷积,因而,其频率特性取决于窗的类型和长度。频率抽样设计法比较直观,但由于频域的采样会造成时域的混叠,从而滤波器叠性能不可能很高,为提高滤波器的性能,可以在过渡带加上0~1之间的过渡点。

三、实验条件

1.使用MATLAB及其函数进行实验

四、实验步骤

1.对3.5kHZ的信号进行采样频率为 fs、fs/2、2fs 的采样,并对三段声音进行播放

2.通过内插公式重构并采样得到新序列z,并统计与原序列相比的误差

五、实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
% 清空数据
clc
clear all
% 参数设置
f0 = 3500;%信号频率
fs = 8125;%采样频率
T = 1/fs;

t = [0:1/fs:7999/fs];
t1 = [0:2/fs:7999/fs];
t2 = [0:1/(fs*2):(2*7999+1)/(fs*2)];
x = cos(2*pi*f0*t);
y = cos(2*pi*f0*t1);
x1 = cos(2*pi*f0*t2);
% 使用MATLAB自带的播放器进行播放
% sound(x,fs)
% sound(y,fs/2)
% sound(x1,fs*2)

xpt = zeros(1,16000);
M = 1000;
for t = 1:1:16000
for j = 0:7999
if sin(pi*((t-1)/(2*fs)-j*T)/T) == 0 && ((t-1)/(2*fs)-j*T) == 0
xpt(t) = xpt(t) + x(j+1);
else
xpt(t) = xpt(t) + x(j+1)*(sin(pi*((t-1)/(2*fs)-j*T)/T)/(pi*((t-1)/(2*fs)-j*T)/T));
end
end
end

%sound(xpt,fs*2)

E = 0;
for i = 1:1:15999
E = E + (xpt(i+1)-x1(i))^2;
end
E = E/16000

t3 = [0:1/fs/24:1];
sig = cos(2*pi*f0*t3);

figure(1)
subplot(2,2,1)
plot(t3(1:10*24),sig(1:10*24))
title('时域波形')
hold on
stem(t2(1:20),xpt(1:20))
hold on
subplot(2,2,2)
plot(t2,xpt-x1)
title('时域波形差')

Xw = fft(x); % 原始信号
X1w = fft(x1); % 2倍采样信号
Yw = fft(y); % 2倍降采样信号
Xpw = fft(xpt); % 2倍采样信号

tdraw = [-4000/fs:1/fs:3999/fs];
t1draw = [-4000/fs:2/fs:3999/fs];
t2draw = [-4000/fs:1/(fs*2):7999/(fs*2)];

figure(2)
subplot(4,2,1)
plot(8000*tdraw,20*log10(abs(Xw)))
title('原始信号')
hold on
subplot(4,2,2)
plot(8000*t1draw,20*log10(abs(Yw)))
title('2倍降采样信号')
hold on
subplot(4,2,3)
plot(8000*t2draw,20*log10(abs(X1w)))
title('2倍采样信号')
hold on
subplot(4,2,4)
plot(8000*t2draw,20*log10(abs(Xpw)))
title('2倍内插信号')
hold on

figure(3)
plot(8000*tdraw,20*log10(abs(Xw)))
hold on
plot(8000*t1draw,20*log10(abs(Yw)))
hold on
plot(8000*t2draw,20*log10(abs(X1w)))
hold on
plot(8000*t2draw,20*log10(abs(Xpw)))
hold on
legend('原始信号','2倍降采样信号','2倍采样信号','2倍内插信号')
grid on

六、实验结果

1.原始信号与内插信号的时域波形相同。

2.采样频率越高,声音越尖锐,这也符合我们对声音音调与频率关系的认知。

image-20211203215542391

image-20211203215601001

image-20211203215613433

七、结果分析

1、重构的效果较为理想,E=0.7842。