|
|
@@ -1,11 +1,11 @@
|
|
|
FormatSpec = '%d';
|
|
|
|
|
|
N = 1;
|
|
|
-R = 2;
|
|
|
+R = 6;
|
|
|
B = 16;
|
|
|
M = 1;
|
|
|
|
|
|
-PointsNum = 496;
|
|
|
+PointsNum = 1000;
|
|
|
|
|
|
Bmax = ceil(log2(((R*M)^N)/R)+B);
|
|
|
MaxWidthR2 = ceil(log2(((2*M)^N)/2)+B);
|
|
|
@@ -20,7 +20,6 @@ xDecim = 1:1:PointsNum/R;
|
|
|
|
|
|
Fc = 3;
|
|
|
Fs = 50;
|
|
|
-
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
ReadInDataId = fopen('C:/S5243_FFT_REPO/src/src/Sim/InputSignal.txt','r');
|
|
|
InDataSignal = fscanf(ReadInDataId,FormatSpec);
|
|
|
@@ -42,26 +41,19 @@ fclose(ReadFilterCoefsId);
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
FreqBandOrig = Fs*(1:(PointsNum))/PointsNum;
|
|
|
-FreqbandDecim = (Fs/2*R)*(1:(PointsNum))/PointsNum;
|
|
|
+FreqbandDecim = Fs*(1:((PointsNum/R)+1))/PointsNum;
|
|
|
|
|
|
InDataFft = abs(fft(InDataSignal+randn(size(InDataSignal)))/PointsNum);
|
|
|
-InDataFftDb = 20*log10(InDataFft);
|
|
|
+InDataFftDb = 10*log10(InDataFft);
|
|
|
+InDataFftDb = InDataFftDb-max(InDataFftDb);
|
|
|
|
|
|
-FilteredDataFft = abs(fft(FilteredData+randn(size(FilteredData)))/PointsNum);
|
|
|
-% FilteredDataFft = abs(fft(FilteredData)/PointsNum);
|
|
|
+% FilteredDataFft = abs(fft(FilteredData+randn(size(FilteredData)))/PointsNum);
|
|
|
+FilteredDataFft = abs(fft(FilteredData)/PointsNum);
|
|
|
FilteredDataFftDb = 20*log10(FilteredDataFft);
|
|
|
FilteredDataFftDb = FilteredDataFftDb-max(FilteredDataFftDb);
|
|
|
|
|
|
-ImpuseRespFft = abs(fft(ImpulseResp));
|
|
|
-ImpuseRespFftDb = 20*log10(ImpuseRespFft);
|
|
|
-ImpuseRespFftDb = ImpuseRespFftDb-max(ImpuseRespFftDb);
|
|
|
-
|
|
|
Fband = 0:1/PointsNum*R:1-1/PointsNum*R;
|
|
|
-% FbandOrig = 0:1/PointsNum:1-1/PointsNum;
|
|
|
-
|
|
|
-%InDataFftDb = InDataFftDb(1:length(Fband));
|
|
|
-%FilteredDataFftDb = FilteredDataFftDb(1:length(Fband));
|
|
|
-%ImpuseRespFftDb = ImpuseRespFftDb(1:length(Fband));
|
|
|
+FbandOrig = 0:1/PointsNum:1-1/PointsNum;
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
figure('name','In Data Time/Freq', 'Numbertitle', 'off')
|
|
|
@@ -69,63 +61,37 @@ subplot(2,1,1)
|
|
|
plot(InDataSignal)
|
|
|
grid on;
|
|
|
grid minor;
|
|
|
-title('In Signal')
|
|
|
-xlabel('Time')
|
|
|
-ylabel('Amp')
|
|
|
+title('In Signal');
|
|
|
+xlabel('Time');
|
|
|
+ylabel('Amp');
|
|
|
|
|
|
subplot(2,1,2)
|
|
|
plot(FilteredData)
|
|
|
grid on;
|
|
|
grid minor;
|
|
|
-title('Filtered Data')
|
|
|
-xlabel('Time')
|
|
|
-ylabel('Amp')
|
|
|
+title('Filtered Data');
|
|
|
+xlabel('Time');
|
|
|
+ylabel('Amp');
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
figure('name','Frequency compare', 'Numbertitle', 'off')
|
|
|
-subplot(3,1,1)
|
|
|
-plot(InDataFftDb)
|
|
|
+subplot(2,1,1)
|
|
|
+plot(FreqBandOrig,InDataFftDb)
|
|
|
grid on;
|
|
|
grid minor;
|
|
|
% axis([0 25 -70 80]);
|
|
|
-title('Single-Sided Amplitude Spectrum of Data before filter')
|
|
|
-xlabel('Time')
|
|
|
-ylabel('Amp')
|
|
|
+title('Single-Sided Amplitude Spectrum of Data before filter');
|
|
|
+xlabel('Time');
|
|
|
+ylabel('Amp');
|
|
|
|
|
|
-subplot(3,1,2)
|
|
|
-plot(ImpuseRespFftDb)
|
|
|
-grid on;
|
|
|
-grid minor;
|
|
|
-% axis([0 50 -60 1]);
|
|
|
-title('Cic Frequency response')
|
|
|
-xlabel('f (Hz)')
|
|
|
-ylabel('Amp')
|
|
|
-
|
|
|
-subplot(3,1,3)
|
|
|
-plot(Fband,FilteredDataFftDb)
|
|
|
+subplot(2,1,2)
|
|
|
+plot(FreqbandDecim,FilteredDataFftDb)
|
|
|
grid on;
|
|
|
grid minor;
|
|
|
% axis([0 25 -70 80]);
|
|
|
-title('Single-Sided Amplitude Spectrum of Data after filter')
|
|
|
-xlabel('f (Hz)')
|
|
|
-ylabel('Amp')
|
|
|
-
|
|
|
-% figure('name','Impulse Response Time/Freq', 'Numbertitle', 'off')
|
|
|
-% subplot(2,1,1)
|
|
|
-% plot( ImpulseResp)
|
|
|
-% grid on;
|
|
|
-% grid minor;
|
|
|
-% title('In Signal')
|
|
|
-% xlabel('Time')
|
|
|
-% ylabel('Amp')
|
|
|
-
|
|
|
-% subplot(2,1,2)
|
|
|
-% plot(Fband,ImpuseRespFftDb)
|
|
|
-% grid on;
|
|
|
-% grid minor;
|
|
|
-% title('Single-Sided Amplitude Spectrum of InData')
|
|
|
-% xlabel('f (Hz)')
|
|
|
-% ylabel('Amp')
|
|
|
+title('Single-Sided Amplitude Spectrum of Data after filter');
|
|
|
+xlabel('f (Hz)');
|
|
|
+ylabel('Amp');
|
|
|
|
|
|
|
|
|
|