Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- close all;
- clc;
- %% 1) Dane
- load('cr_n1.mat');
- fs = 2e5;
- f = linspace(-fs/2,fs/2,length(rxSig));
- %% 2) widmo odebranego:
- rxSigFFT = abs(fft(rxSig)); % Cha-ka a-cz sygnalu odbieranego
- figure;
- plot(f, [rxSigFFT(length(rxSigFFT)/2:end);rxSigFFT(1:length(rxSigFFT)/2-1)]);
- title('Cha-ka a-cz sygnalu odbieranego');
- xlabel('[kHz]');
- %% 3) Przesunięcie do BB
- rxSig2 = rxSig.^4;
- NFFT = length(rxSig2)*50;
- rxSigFFT2 = abs(fft(rxSig2, NFFT));
- f2 = linspace(-fs/2,fs/2,length(rxSigFFT2));
- figure;
- plot(f2, [rxSigFFT2(length(rxSigFFT2)/2:end);rxSigFFT2(1:length(rxSigFFT2)/2-1)]); %sta�a, no�na, szybko�� symbolowa
- title('Sygna� podniesiony do 4 pot�gi; sta�a, no�na, szybko�� symbolowa');
- xlabel('Frequency [Hz]');
- [val, offsetIndex] = max([rxSigFFT2(length(rxSigFFT2)/2:end);rxSigFFT2(1:length(rxSigFFT2)/2-1)]);
- fshift = f2(offsetIndex)/4;
- %% 4) Przesuniecie do BB
- rxSig = rxSig .* exp(2*pi*1j*fshift/fs*(0:length(rxSig)-1))'; % Przesuwamy sygnal do zera Hz (BB)
- %% 5) widmo przesunietego do BB:
- rxSigFFTshifted = abs(fft(rxSig));
- figure;
- plot(f, [rxSigFFTshifted(length(rxSigFFTshifted)/2:end);rxSigFFTshifted(1:length(rxSigFFTshifted)/2-1)]);
- title('Cha-ka a-cz sygnalu przesunietego do BB');
- xlabel('Frequency [Hz]');
- %% Wyrkes konstelacji - dane
- rolloff = 0.35; % wsp poszerzenia pasma
- span = 8; % liczba odfiltrowanych symboli
- sps = 100; % liczba probek na symbol
- %% Wykres konstelacji przed resamplingiem
- constellation_before = scatterplot(rxSig); %diagram konstelacji
- %% resampling
- b = rcosdesign(rolloff, span, sps); % filtr podniesiony cosinus do obnizenia cz. probkowania
- newFs = 2e3;
- [L,M] = rat(fs/newFs);
- disp(int2str(round(fs/newFs)))
- resampledSig = upfirdn(rxSig, b, M, L);
- delay = floor(((filtord(b)-1)/2-(L-1))/L); %liczenie opoznienia sygnalu przez filter
- resampledSig = resampledSig(delay+1:end); %przesuniecie sygnalu o delay
- %% Wyrkes konstelacji ppo resamplingu
- constellation_after = scatterplot(resampledSig); %diagram konstelacji
- %% Widmo po resamplingu
- resampledSigFFT = abs(fft(resampledSig));
- fResampled = linspace(-newFs/2,newFs/2,length(resampledSig));
- if (mod(length(fResampled), 2) > 0)
- fResampled(length(fResampled)+1) = 0;
- resampledSigFFT(length(resampledSigFFT)+1) = 0;
- end
- %% Wykres widma po resamplingu
- figure;
- plot(fResampled, [resampledSigFFT(length(resampledSigFFT)/2:end);resampledSigFFT(1:length(resampledSigFFT)/2-1)]);
- title('Cha-ka a-cz sygnalu po resamplingu');
- xlabel('Frequency [Hz]');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement