IQ解调代码 matlab
时间: 2023-06-19 22:06:42 浏览: 197
IQ调制MATLAB程序
4星 · 用户满意度95%
以下是一个基本的 IQ 解调代码示例,使用 MATLAB 编写:
```matlab
% 采样率
Fs = 100e3;
% 载波频率
f_carrier = 10e3;
% 载波信号
t = 0:1/Fs:1;
carrier = cos(2*pi*f_carrier*t);
% 调制信号
message = sin(2*pi*2e3*t);
% IQ 信号
iq_signal = message .* exp(1i*2*pi*f_carrier*t);
% 解调
demodulated = iq_signal .* exp(-1i*2*pi*f_carrier*t);
% 滤波
[b,a] = butter(10, 2*2e3/Fs, 'low');
filtered = filter(b, a, demodulated);
% 重采样
resampled = resample(filtered, 1, 10);
% 绘图
subplot(3,1,1);
plot(t, message);
title('Modulating Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(3,1,2);
plot(t, real(iq_signal));
hold on;
plot(t, imag(iq_signal));
title('IQ Signal');
xlabel('Time (s)');
ylabel('Amplitude');
legend('I', 'Q');
subplot(3,1,3);
plot(t, real(demodulated));
hold on;
plot(t, imag(demodulated));
title('Demodulated Signal');
xlabel('Time (s)');
ylabel('Amplitude');
legend('I', 'Q');
```
这段代码生成一个 2 kHz 的正弦波,使用一个频率为 10 kHz 的余弦波作为载波,生成 IQ 信号。然后,解调信号、滤波并重采样。最后,绘制原始信号、IQ 信号和解调信号的图形。
阅读全文