1

我的问题可能很简单,但我在这里停留了很长一段时间。我正在尝试在 Matlab 中模拟立体声 FM 复杂基带信号。我正在使用来自意大利小组的“无源雷达调频无线电信号的分析和仿真”论文作为我的基础。我实际上能够为无线电信号部分创建正确的信号。我的问题是其余的2*pi*k_f和集成。我正在使用cumsum()matlab 的功能作为集成块。一切似乎都很好,但是当我k_f = 75000按照论文中的说明使用时,我的复杂包络信号完全平坦,没有类似于图 2 中第二张图的三角形。

fmmod在不使用Matlab的功能的情况下做到这一点对我来说非常重要。这是我的代码:

clear all
close all
clc

noCh = 1; % number of channels, not important at the moment, just use 1
Fs = 400e3; % sampling frequency
bw_rx = 200e3; % receiver bandwidth (not being used atm)
i_t = 1; % integration time is always 1 second during FM signal generation
[data, Fs_data] = audioread('tool1.mp3'); % music data
t = linspace(0, i_t, Fs*i_t); % time vector
st = zeros(noCh, Fs*i_t);
for k=1:noCh
    l = transpose(data(1e6+1:1e6+Fs_data, 1)); % left channel data
    r = transpose(data(1e6+1:1e6+Fs_data, 2)); % righ channel data

    l = resample(l, Fs*i_t, Fs_data*i_t); % interpolate to Fs for shifting in frequency domain
    r = resample(r, Fs*i_t, Fs_data*i_t); 
    l = l/max(l); % normalize
    r = r/max(r);

    figure
    subplot(2,1,1)

    % message signal
    mt = 0.5*(l+r) + 0.5*(l-r).*cos(2*pi*2*19000*t) + 0.5*cos(2*pi*19000*t);
    mt = mt/max(mt);
    temp = abs(fft(mt))/max(abs(fft(mt)));
    % plot the message signal
    plot(20*log10(fftshift(temp)))
    % integration and multiplication with 2*pi*75000
    mt = 2*pi*75000*cumsum(mt);
    st(noCh, :) = cos(mt) + 1i*sin(mt); % complex envelop stereo FM signal
end
subplot(2,1,2)
% plot the complex envelope signal
plot(20*log10(fftshift(abs(fft(st)))))
4

0 回答 0