1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWYkppu
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
数字信号传输系统分为基带传输系统和频带传输系统.频带传输系统也叫数字调制系统。数字调制信号又称为键控信号,数字调制过程中处理的是数字信号,而载波有振幅、频率和相位3个变量,且二进制的信号只有高低电平两个逻辑量1和0,所以调制的过程可用键控的方法由基带信号对载频信号的振幅、频率及相位进行调制,最基本的方法有3种:正交幅度调制(QAM)、频移键控(FSK)、相移键控(PSK).根据所处理的基带信号的进制不同分为二进制和多进制调制(M 进制).多进制数字调制与二进制相比,其频谱利用率更高。
MFSK系统是2FSK(二频键控)系统的推广,该系统有M个不同的载波频率可供选择,每一个载波频率对应一个M进制码元信息,即用多个频率不同的正弦波分别代表不同的数字信号,在某一码元时间内只发送其中一个频率。
4.部分源码
............................................................................
for i=1:length(data)
tSym = (i-1)*symDur:Ts:(symDur*i);% symbol duration
tmp = cos(2*pi*tSym* freqs(data(i)+1));%%modulate data with corresponding frequency
mod = [mod tmp];%append the symbol duration to complete signal
subplot(2,1,2);plot(tSym,tmp,'color', colors(data(i)+1,:));
title("Modulated Signal @TX");xlabel('Time');ylabel("Amplitude[V]")
hold on; axis([0 tSym(end) -2 2]);
hold on
end
F = linspace(-fs/2,fs/2, numel(mod));%frequency range for plotting
t = linspace(0,numel(data),numel(mod));%time range for plotting
fft_TX = fftshift(abs(fft(mod)));
fft_TX = 1/numel(fft_TX)*fft_TX;%Mag spectrum of signal
figure;
plot(F,fft_TX);title("Mag. Spectrum of Signal @TX");xlabel('Freq. [Hz]');ylabel("Magnitude[V]")
figure;
noisy_sig = awgn(mod,-2,'measured');%pass signal through awgn ch.
subplot(2,1,1);plot(t,noisy_sig);title("FSK Signal @RX");xlabel('Time');ylabel("Amplitude[V]")
fft_NO = fftshift(abs(fft(noisy_sig)));
fft_NO = 1/numel(fft_NO)*fft_NO;%spectrum @ RX
subplot(2,1,2);plot(F,fft_NO);title("Mag. Spectrum of Signal @RX");
xlabel('Freq. [Hz]');ylabel("Magnitude[V]")
n_sym=numel(data);
n_mod=numel(mod);
sPerSymb = n_mod/n_sym;%sample per symbol
n_freqs=numel(freqs)
correlator = zeros(n_sym,n_freqs);%preallocation for demoding
%each row is repsenting period for one symbol
%columns are representing the correlator output for a freq in a sym period
for i=1:n_sym
tSym = (i-1)*symDur:Ts:(symDur*i);
for j=1:n_freqs
out = noisy_sig((i-1)*sPerSymb+1:i*sPerSymb).*cos(2*pi*tSym* freqs(j));
%multiplying with cos waves at expected freqs in above line
correlator(i,j) = trapz(tSym,out);
%integrating multiplied signal and inserting to a matrix
end
end
..........................................................................
A396