用matlab产生一个频率为1Hz,振幅为1的余弦信源,设载波频率为10Hz,A=2。 AM系统中,当相干解调器输入信噪比为15dB时,系统各点的波形及其频谱,并对调制信号和解调信号进行比较分析。
时间: 2024-09-25 09:14:34 浏览: 70
在MATLAB中,你可以使用`sin`函数生成一个余弦信号作为基本信源,然后通过幅度调制(Amplitude Modulation, AM)技术将其加载到高频载波上。首先,我们创建一个频率为1 Hz、振幅为1的基础余弦波:
```matlab
fs = 1000; % Sampling frequency (足够高以近似连续信号)
t = 0:1/fs:1-1/fs; % Time vector
cos_signal = cos(2*pi*1*t); % 1 Hz cosine wave with amplitude 1
```
接下来,我们将基础信号与载波信号相乘,这里载波频率为10 Hz,振幅为2:
```matlab
carrier_freq = 10; % Carrier frequency
carrier = sin(2*pi*carrier_freq*t); % 10 Hz sine wave
amplitude_modulated_signal = carrier .* cos_signal * A; % AM modulation with A=2
```
现在,你已经有了调制后的信号。为了进行相干解调,你需要先将它从载波中解调出来。这通常涉及低通滤波,例如傅立叶变换后再取实部:
```matlab
% Perform low-pass filtering for demodulation
demodulated_signal = real(ifft(amplitude_modulated_signal)); % Using the inverse Fourier transform
% Calculate the signal-to-noise ratio (SNR) for 15 dB
snr_db = 15; % In decibels
noise_power = 10^(-snr_db/10);
noise = sqrt(noise_power) * randn(size(t)); % White noise with SNR of 15 dB
received_signal = demodulated_signal + noise;
```
最后,你可以绘制原始信源、调制后的信号以及解调后的信号的波形图,同时计算它们的频谱以分析AM过程的效果:
```matlab
figure;
subplot(2,1,1);
plot(t, cos_signal, 'b', t, amplitude_modulated_signal, 'g');
xlabel('Time (s)');
ylabel('Amplitude');
legend('Original Cosine', 'AM Signal');
subplot(2,1,2);
[fft_cos, freq] = fft(cos_signal);
[fft_am, ~] = fft(demodulated_signal);
freq_mod = linspace(0, fs/2, length(freq)/2+1);
subplot(2,1,2);
plot(freq_mod, abs(fft_cos), 'b', freq_mod, abs(fft_am), 'g');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title(['Original Spectrum (Cosine) and Demodulated Spectrum']);
```
对于调制信号和解调信号的比较,注意观察波形图中调制前后的变化以及频谱中载波峰的存在与否,以及噪声引入后信噪比的变化。解调后信号应接近于原始余弦信号。
阅读全文