OpenCores
URL https://opencores.org/ocsvn/fir_filter/fir_filter/trunk

Subversion Repositories fir_filter

[/] [fir_filter/] [tags/] [testbench/] [filtro_fir.m] - Blame information for rev 10

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 10 arroxo2
clear all;
2
format long g;
3
 
4
 
5
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
6
%                       filtro_FIR.vhd
7
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8
% http://t-filter.appspot.com/fir/index.html
9
 
10
fs=64e6
11
order=31
12
fc=2e6
13
input_size=8
14
 
15
%%%%%%%%%%%%%%%%%%%% h[n] %%%%%%%%%%%%%%%%%%%%%%%%%
16
 
17
fnyquist=fs/2;
18
 
19
%normalized cut-off frequency
20
wn=fc/fnyquist;
21
 
22
h= fir1(order,wn,'low')
23
 
24
figure(1);
25
stem(h);
26
title('h(n)');grid on;
27
 
28
 
29
%%%%%%%%%%%%%%%%%%%% H[z] %%%%%%%%%%%%%%%%%%%%%%%%%
30
 
31
figure(2);
32
freqz(h);
33
 
34
%%%%%%%%%%%%%%%%%%%% x[n] %%%%%%%%%%%%%%%%%%%%%%%%%
35
 
36
num_cycles=16;
37
amplitude=2^input_size-1;
38
freq=fc/4;
39
 
40
num_samples=num_cycles*(fs/freq);
41
 
42
n=0:1/(fs/freq):num_cycles;
43
sin=amplitude*sin(2*pi*n);
44
x=sin+(amplitude/20)*randn(size(n));
45
 
46
figure(3);
47
subplot(2,2,1);
48
str=sprintf('x[n]:  f=%g Hz  max=%g+noise',freq,max(sin));
49
stem(x); title(str); grid on;
50
 
51
%%%%%%%%%%%%%%%%%%%% x[z] %%%%%%%%%%%%%%%%%%%%%%%%%
52
 
53
% NFFT = 2^nextpow2(num_samples);
54
% f = (1:NFFT/2+1)*(fs/NFFT);          % wn=1 <> fs/2
55
 
56
% X = fft(x,NFFT);
57
% peakpowerX = max(X).*conj(max(X))/NFFT;
58
 
59
subplot(2,2,2);
60
% stem(f,2*abs(X(1:NFFT/2+1)));
61
% str=sprintf('x[z]  peak power=%g',peakpowerX);
62
% title(str); grid on;
63
% xlabel('f[Hz]')
64
% ylabel('|x[z]|')
65
periodogram(x,rectwin(length(x)),length(x),fs);
66
 
67
 
68
% %%%%%%%%%%%%%%%%%%%% y[n] %%%%%%%%%%%%%%%%%%%%%%%
69
 
70
y=filter(h,1,x);
71
subplot(2,2,3);
72
str=sprintf('y[n]:  fc=%g Hz  peak=%g',fc,max(y(length(h):num_samples)));
73
stem(y); title(str); grid on;
74
 
75
%%%%%%%%%%%%%%%%%%%% y[z] %%%%%%%%%%%%%%%%%%%%%%%%%
76
 
77
subplot(2,2,4);
78
periodogram(y,rectwin(length(y)),length(y),fs);
79
 
80
 
81
format;
82
 
83
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.