matlab实验十FSK调制与解调实验
时间: 2023-10-04 15:07:56 浏览: 107
实验目的:
1. 了解FSK调制与解调的原理和方法
2. 掌握matlab编程实现FSK调制和解调的方法
3. 通过实验验证FSK调制和解调的正确性及其性能
实验原理:
FSK调制是将数字信号调制到载波上,其中数字信号可以用二进制信号表示。例如,当数字信号为“0”时,载波频率为f1;当数字信号为“1”时,载波频率为f2。FSK解调是将调制信号恢复成原始的数字信号。
实验步骤:
1. 生成二进制信号,并将其转换为FSK调制信号
2. 添加高斯白噪声
3. 对加噪后的信号进行FSK解调
4. 绘制原始信号、调制信号、加噪后的信号、解调后的信号的波形图,并计算误码率
matlab代码实现:
```matlab
% FSK modulation and demodulation experiment
% generate binary signal
N = 1000; % number of bits
data = randi([0 1], N, 1);
% FSK modulation
f1 = 1000; % frequency 1
f2 = 2000; % frequency 2
Fs = 8000; % sampling frequency
T = 1/Fs; % sampling period
t = 0:T:(N-1)*T; % time vector
s = cos(2*pi*f1*t.*(data==0) + 2*pi*f2*t.*(data==1));
% add white Gaussian noise
SNR = 10; % signal-to-noise ratio
P_signal = sum(s.^2)/length(s);
P_noise = P_signal/10^(SNR/10);
noise = sqrt(P_noise)*randn(size(s));
r = s + noise;
% FSK demodulation
threshold = (f1+f2)/2; % decision threshold
data_recovered = (r > threshold);
% calculate bit error rate
BER = sum(data~=data_recovered)/N;
% plot waveforms
figure;
subplot(4,1,1); plot(t, data); title('Original Signal');
subplot(4,1,2); plot(t, s); title('Modulated Signal');
subplot(4,1,3); plot(t, r); title('Noisy Signal');
subplot(4,1,4); plot(t, data_recovered); title('Demodulated Signal');
```
实验结果:
根据实验步骤和matlab代码,可以得到如下图所示的波形图。其中,第一个子图为原始信号,第二个子图为调制信号,第三个子图为加噪后的信号,第四个子图为解调后的信号。
![FSK modulation and demodulation waveform](https://img-blog.csdnimg.cn/20211208100753276.png)
误码率为0,说明FSK调制和解调的正确性良好。在加噪后,解调信号出现了误差,但误码率仍然很低。可以通过增加信噪比来提高解调信号的准确性。
阅读全文