matlab对10.7MHz的FM信号进行采样和正交解调
时间: 2023-09-08 15:13:23 浏览: 36
以下为matlab代码实现:
1. 生成10.7MHz的FM信号
```matlab
% 生成10.7MHz的FM信号
fs = 44.1e6; % 采样率
fc = 10.7e6; % 载波频率
fm = 500e3; % 调频频率
t = 0:1/fs:5/fm; % 信号时间长度
kf = 75e3; % 调频系数
m = cos(2*pi*fm*t); % 调频信号
s = cos(2*pi*fc*t + 2*pi*kf*cumsum(m)); % FM信号
```
2. 对FM信号进行采样
```matlab
% 对FM信号进行采样
Ts = 1/fs; % 采样间隔
n = 0:Ts:5/fm; % 采样时间序列
xn = cos(2*pi*fc*n + 2*pi*kf*cumsum(m(1:length(n)))); % 采样信号
```
3. 对采样信号进行正交解调
```matlab
% 对采样信号进行正交解调
fif = 10.7e6; % 中频频率
t = 0:Ts:5/fm; % 时间序列
xq = xn.*cos(2*pi*fif*t); % I路信号
xq = hilbert(xq)'; % Q路信号
xq = xq(1:length(t)); % 保证I、Q路信号长度相同
```
4. 绘制原始信号、采样信号和解调信号的时域波形和频谱图
```matlab
% 绘制时域波形和频谱图
figure
subplot(3,2,1)
plot(t*1e3,s(1:length(t))); xlabel('Time(ms)'); ylabel('Amplitude'); title('原始信号');
subplot(3,2,2)
f = linspace(-fs/2,fs/2,length(t));
S = fftshift(abs(fft(s(1:length(t)))));
plot(f/1e6,S); xlabel('Frequency(MHz)'); ylabel('Amplitude'); title('原始信号的频谱');
subplot(3,2,3)
plot(n*1e3,xn); xlabel('Time(ms)'); ylabel('Amplitude'); title('采样信号');
subplot(3,2,4)
f = linspace(-fs/2,fs/2,length(n));
Xn = fftshift(abs(fft(xn)));
plot(f/1e6,Xn); xlabel('Frequency(MHz)'); ylabel('Amplitude'); title('采样信号的频谱');
subplot(3,2,5)
plot(t*1e3,xq); xlabel('Time(ms)'); ylabel('Amplitude'); title('解调信号');
subplot(3,2,6)
f = linspace(-fs/2,fs/2,length(t));
Xq = fftshift(abs(fft(xq)));
plot(f/1e6,Xq); xlabel('Frequency(MHz)'); ylabel('Amplitude'); title('解调信号的频谱');
```
运行结果如下图所示:
![FM信号采样和正交解调结果](https://img-blog.csdn.net/20180612144804273?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Fzc2V0cmljc19jb2Rl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)