Jedora

Happy blogging in my way...

Friday, June 08, 2007

FIR filter - from Matlab to C

How to implement Matlab fir1 function in C? Here is the answer.

//================== my_fir1.c ============================
#include
#include
#include

#define PI 3.14159265
#define L 256 /* Filter length */
#define Pr_L L
#define M 64

double * my_fir1(unsigned N, double Wn)
{
/* FIR filter
Return an array of 1 X 256
*/
unsigned odd, i, j, nhlf, i1;
double f1, gain, c1;
double wind[Pr_L],xn[Pr_L/2],b[Pr_L/2],c[Pr_L/2],c3[Pr_L/2];
double *bb;

bb = (double *) malloc(sizeof(double) * Pr_L);

gain = 0.0000000;
N = N+1;
odd = N - (N/2)*2; /* odd = rem(N,2) */

/*wind = hamming(N);*/
for (i=0; i < Pr_L; i++)
{
wind[i] = 0.54 - 0.46 * cos ((2 * PI * i) / (N-1));
}

f1 = Wn / 2.0;
c1 = f1;
nhlf = (N+1) / 2;
i1 = odd + 1;

/* Lowpass */

if(odd)
b[0] = 2 * c1;

for (i=0; i < nhlf; i++)
{
xn[i] = i + 0.5 * (1 - odd);
}

for (i=0; i < nhlf; i++)
{
c[i] = PI * xn[i];
}

for (i=0; i < nhlf; i++)
{
c3[i] = 2 * c1 * c[i];
}

/* b(i1:nhlf)=(sin(c3)./c) */
for (i=0; i < nhlf; i++)
{
b[i] = sin(c3[i]) / c[i];
}

/* bb = real([b(nhlf:-1:i1) b(1:nhlf)].*wind(:)') */
for (i=0,j=nhlf-1; i < nhlf; i++, j--)
{
bb[i] = b[j];
}
for (i=nhlf,j=0; i < Pr_L; i++,j++)
{
bb[i] = b[j];
}
for (i=0; i < Pr_L; i++)
{
bb[i] = bb[i] * wind[i];
}

/* gain = abs(polyval(b,1)); */
for (i=0; i < Pr_L; i++)
{
gain += bb[i];
}
/* b = b / gain */
for (i=0; i < Pr_L; i++)
{
bb[i] = bb[i] / gain;
}

return bb;

}

int main (void)
{
unsigned i;
double *Prot_filt;
Prot_filt = (double *) malloc(sizeof(double) * Pr_L);

Prot_filt = my_fir1(Pr_L-1,1 / (double)M); /* FIR filter */

for(i=0; i < Pr_L; i++)
{
Prot_filt[i] = Prot_filt[i] * (M/2);
}

for(i=0; i < Pr_L; i++)
printf("Prot_filt[%d]=%f\n",i,Prot_filt[i]); /*debug*/

}

======================
I test it under Fedora Core 6 Linux

$ gcc -o my_fir1 my_fir1.c
$ ./my_fir1


Outputs are:
Prot_filt[0]=-0.000156
Prot_filt[1]=-0.000473
Prot_filt[2]=-0.000797
Prot_filt[3]=-0.001132
Prot_filt[4]=-0.001480
Prot_filt[5]=-0.001844
Prot_filt[6]=-0.002227
Prot_filt[7]=-0.002631
Prot_filt[8]=-0.003059
Prot_filt[9]=-0.003513
Prot_filt[10]=-0.003996
Prot_filt[11]=-0.004510
Prot_filt[12]=-0.005056
Prot_filt[13]=-0.005637
Prot_filt[14]=-0.006254
Prot_filt[15]=-0.006907
Prot_filt[16]=-0.007598
Prot_filt[17]=-0.008327
Prot_filt[18]=-0.009095
Prot_filt[19]=-0.009901
Prot_filt[20]=-0.010744
Prot_filt[21]=-0.011623
Prot_filt[22]=-0.012537
Prot_filt[23]=-0.013484
Prot_filt[24]=-0.014462
Prot_filt[25]=-0.015466
Prot_filt[26]=-0.016495
Prot_filt[27]=-0.017543
Prot_filt[28]=-0.018608
Prot_filt[29]=-0.019682
Prot_filt[30]=-0.020762
Prot_filt[31]=-0.021841
Prot_filt[32]=-0.022913
Prot_filt[33]=-0.023971
Prot_filt[34]=-0.025008
Prot_filt[35]=-0.026015
Prot_filt[36]=-0.026985
Prot_filt[37]=-0.027908
Prot_filt[38]=-0.028777
Prot_filt[39]=-0.029580
Prot_filt[40]=-0.030309
Prot_filt[41]=-0.030954
Prot_filt[42]=-0.031504
Prot_filt[43]=-0.031948
Prot_filt[44]=-0.032275
Prot_filt[45]=-0.032476
Prot_filt[46]=-0.032538
Prot_filt[47]=-0.032451
Prot_filt[48]=-0.032203
Prot_filt[49]=-0.031783
Prot_filt[50]=-0.031181
Prot_filt[51]=-0.030384
Prot_filt[52]=-0.029382
Prot_filt[53]=-0.028165
Prot_filt[54]=-0.026723
Prot_filt[55]=-0.025044
Prot_filt[56]=-0.023120
Prot_filt[57]=-0.020940
Prot_filt[58]=-0.018497
Prot_filt[59]=-0.015782
Prot_filt[60]=-0.012786
Prot_filt[61]=-0.009504
Prot_filt[62]=-0.005928
Prot_filt[63]=-0.002052
Prot_filt[64]=0.002129
Prot_filt[65]=0.006618
Prot_filt[66]=0.011420
Prot_filt[67]=0.016538
Prot_filt[68]=0.021972
Prot_filt[69]=0.027725
Prot_filt[70]=0.033795
Prot_filt[71]=0.040183
Prot_filt[72]=0.046886
Prot_filt[73]=0.053900
Prot_filt[74]=0.061223
Prot_filt[75]=0.068849
Prot_filt[76]=0.076772
Prot_filt[77]=0.084985
Prot_filt[78]=0.093480
Prot_filt[79]=0.102248
Prot_filt[80]=0.111278
Prot_filt[81]=0.120560
Prot_filt[82]=0.130081
Prot_filt[83]=0.139829
Prot_filt[84]=0.149788
Prot_filt[85]=0.159945
Prot_filt[86]=0.170283
Prot_filt[87]=0.180786
Prot_filt[88]=0.191435
Prot_filt[89]=0.202213
Prot_filt[90]=0.213101
Prot_filt[91]=0.224079
Prot_filt[92]=0.235126
Prot_filt[93]=0.246222
Prot_filt[94]=0.257346
Prot_filt[95]=0.268474
Prot_filt[96]=0.279586
Prot_filt[97]=0.290658
Prot_filt[98]=0.301668
Prot_filt[99]=0.312592
Prot_filt[100]=0.323407
Prot_filt[101]=0.334091
Prot_filt[102]=0.344619
Prot_filt[103]=0.354969
Prot_filt[104]=0.365118
Prot_filt[105]=0.375043
Prot_filt[106]=0.384721
Prot_filt[107]=0.394131
Prot_filt[108]=0.403250
Prot_filt[109]=0.412058
Prot_filt[110]=0.420534
Prot_filt[111]=0.428659
Prot_filt[112]=0.436412
Prot_filt[113]=0.443777
Prot_filt[114]=0.450734
Prot_filt[115]=0.457267
Prot_filt[116]=0.463361
Prot_filt[117]=0.469001
Prot_filt[118]=0.474174
Prot_filt[119]=0.478866
Prot_filt[120]=0.483066
Prot_filt[121]=0.486764
Prot_filt[122]=0.489950
Prot_filt[123]=0.492618
Prot_filt[124]=0.494760
Prot_filt[125]=0.496371
Prot_filt[126]=0.497448
Prot_filt[127]=0.497987
Prot_filt[128]=0.497987
Prot_filt[129]=0.497448
Prot_filt[130]=0.496371
Prot_filt[131]=0.494760
Prot_filt[132]=0.492618
Prot_filt[133]=0.489950
Prot_filt[134]=0.486764
Prot_filt[135]=0.483066
Prot_filt[136]=0.478866
Prot_filt[137]=0.474174
Prot_filt[138]=0.469001
Prot_filt[139]=0.463361
Prot_filt[140]=0.457267
Prot_filt[141]=0.450734
Prot_filt[142]=0.443777
Prot_filt[143]=0.436412
Prot_filt[144]=0.428659
Prot_filt[145]=0.420534
Prot_filt[146]=0.412058
Prot_filt[147]=0.403250
Prot_filt[148]=0.394131
Prot_filt[149]=0.384721
Prot_filt[150]=0.375043
Prot_filt[151]=0.365118
Prot_filt[152]=0.354969
Prot_filt[153]=0.344619
Prot_filt[154]=0.334091
Prot_filt[155]=0.323407
Prot_filt[156]=0.312592
Prot_filt[157]=0.301668
Prot_filt[158]=0.290658
Prot_filt[159]=0.279586
Prot_filt[160]=0.268474
Prot_filt[161]=0.257346
Prot_filt[162]=0.246222
Prot_filt[163]=0.235126
Prot_filt[164]=0.224079
Prot_filt[165]=0.213101
Prot_filt[166]=0.202213
Prot_filt[167]=0.191435
Prot_filt[168]=0.180786
Prot_filt[169]=0.170283
Prot_filt[170]=0.159945
Prot_filt[171]=0.149788
Prot_filt[172]=0.139829
Prot_filt[173]=0.130081
Prot_filt[174]=0.120560
Prot_filt[175]=0.111278
Prot_filt[176]=0.102248
Prot_filt[177]=0.093480
Prot_filt[178]=0.084985
Prot_filt[179]=0.076772
Prot_filt[180]=0.068849
Prot_filt[181]=0.061223
Prot_filt[182]=0.053900
Prot_filt[183]=0.046886
Prot_filt[184]=0.040183
Prot_filt[185]=0.033795
Prot_filt[186]=0.027725
Prot_filt[187]=0.021972
Prot_filt[188]=0.016538
Prot_filt[189]=0.011420
Prot_filt[190]=0.006618
Prot_filt[191]=0.002129
Prot_filt[192]=-0.002052
Prot_filt[193]=-0.005928
Prot_filt[194]=-0.009504
Prot_filt[195]=-0.012786
Prot_filt[196]=-0.015782
Prot_filt[197]=-0.018497
Prot_filt[198]=-0.020940
Prot_filt[199]=-0.023120
Prot_filt[200]=-0.025044
Prot_filt[201]=-0.026723
Prot_filt[202]=-0.028165
Prot_filt[203]=-0.029382
Prot_filt[204]=-0.030384
Prot_filt[205]=-0.031181
Prot_filt[206]=-0.031783
Prot_filt[207]=-0.032203
Prot_filt[208]=-0.032451
Prot_filt[209]=-0.032538
Prot_filt[210]=-0.032476
Prot_filt[211]=-0.032275
Prot_filt[212]=-0.031948
Prot_filt[213]=-0.031504
Prot_filt[214]=-0.030954
Prot_filt[215]=-0.030309
Prot_filt[216]=-0.029580
Prot_filt[217]=-0.028777
Prot_filt[218]=-0.027908
Prot_filt[219]=-0.026985
Prot_filt[220]=-0.026015
Prot_filt[221]=-0.025008
Prot_filt[222]=-0.023971
Prot_filt[223]=-0.022913
Prot_filt[224]=-0.021841
Prot_filt[225]=-0.020762
Prot_filt[226]=-0.019682
Prot_filt[227]=-0.018608
Prot_filt[228]=-0.017543
Prot_filt[229]=-0.016495
Prot_filt[230]=-0.015466
Prot_filt[231]=-0.014462
Prot_filt[232]=-0.013484
Prot_filt[233]=-0.012537
Prot_filt[234]=-0.011623
Prot_filt[235]=-0.010744
Prot_filt[236]=-0.009901
Prot_filt[237]=-0.009095
Prot_filt[238]=-0.008327
Prot_filt[239]=-0.007598
Prot_filt[240]=-0.006907
Prot_filt[241]=-0.006254
Prot_filt[242]=-0.005637
Prot_filt[243]=-0.005056
Prot_filt[244]=-0.004510
Prot_filt[245]=-0.003996
Prot_filt[246]=-0.003513
Prot_filt[247]=-0.003059
Prot_filt[248]=-0.002631
Prot_filt[249]=-0.002227
Prot_filt[250]=-0.001844
Prot_filt[251]=-0.001480
Prot_filt[252]=-0.001132
Prot_filt[253]=-0.000797
Prot_filt[254]=-0.000473
Prot_filt[255]=-0.000156

==========================
It's equivalent to Matlab outputs.
Hope useful for someone who's looking for this function.

38 Comments:

  • At 12:49 PM, Blogger Jedora said…

    #include "math.h"
    #include "stdio.h"
    #include "malloc.h"

    Replace "" to <>

     
  • At 5:43 PM, Anonymous Anonymous said…

    but how can u design highpass,bandpass,bandstop using this code

     
  • At 6:12 PM, Blogger Unknown said…

    here u disigned only low pass
    what about highpass

     
  • At 11:55 AM, Blogger soad241 said…

    Great job, that's really useful

     
  • At 11:45 AM, Blogger Jedora said…

    If u want to design highpass, bandpass and bandstop fir filter, please translate the following matlab code to C. It's easy and fun.

    ========================
    http://www.jamstec.go.jp/TOMOGRAPHY/1997/DataAnalysis/Program/matlab_tools/etc/fir1.m
    ========================
    or:

    function [b,a] = fir1(N,Wn,Ftype,Wind)
    %FIR1 FIR filter design using the window method.
    % B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter
    % and returns the filter coefficients in length N+1 vector B.
    % The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0
    % corresponding to half the sample rate.
    %
    % If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an
    % order N bandpass filter with passband W1 < W < W2.
    % B = FIR1(N,Wn,'high') designs a highpass filter.
    % B = FIR1(N,Wn,'stop') is a bandstop filter if Wn = [W1 W2].
    % For highpass and bandstop filters, N must be even.
    %
    % By default FIR1 uses a Hamming window. Other available windows,
    % including Boxcar, Hanning, Bartlett, Blackman, Kaiser and Chebwin
    % can be specified with an optional trailing argument. For example,
    % B = FIR1(N,Wn,bartlett(N+1)) uses a Bartlett window.
    % B = FIR1(N,Wn,'high',chebwin(N+1,R)) uses a Chebyshev window.
    %
    % FIR1 is an M-file implementation of program 5.2 in the IEEE
    % Programs for Digital Signal Processing tape. See also FIR2,
    % FIRLS, REMEZ, BUTTER, CHEBY1, CHEBY2, YULEWALK, FREQZ and FILTER.

    % Author(s): L. Shure
    % L. Shure, 4-5-90, revised
    % Copyright (c) 1984-94 by The MathWorks, Inc.
    % $Revision: 1.6 $ $Date: 1994/01/25 17:59:09 $

    % Reference(s):
    % [1] "Programs for Digital Signal Processing", IEEE Press
    % John Wiley & Sons, 1979, pg. 5.2-1.

    nw = 0;
    a = 1;
    if nargin == 3
    if ~isstr(Ftype);
    nw = max(size(Ftype));
    Wind = Ftype;
    Ftype = [];
    end
    elseif nargin == 4
    nw = max(size(Wind));
    else
    Ftype = [];
    end

    Btype = 1;
    if nargin > 2 & max(size(Ftype)) > 0
    Btype = 3;
    end
    if max(size(Wn)) == 2
    Btype = Btype + 1;
    end

    N = N + 1;
    odd = rem(N, 2);
    if (Btype == 3 | Btype == 4)
    if (~odd)
    disp('For highpass and bandstop filters, order must be even.')
    disp('Order is being increased by 1.')
    N = N + 1;
    odd = 1;
    end
    end
    if nw ~= 0 & nw ~= N
    error('The window length must be the same as the filter length.')
    end
    if nw > 0
    wind = Wind;
    else % replace the following with the default window of your choice.
    wind = hamming(N);
    end
    %
    % to use Chebyshev window, you must specify ripple
    % ripple=60;
    % wind=chebwin(N, ripple);
    %
    % to use Kaiser window, beta must be supplied
    % att = 60; % dB of attenuation desired in sidelobe
    % beta = .1102*(att-8.7);
    % wind = kaiser(N,beta);

    fl = Wn(1)/2;
    if (Btype == 2 | Btype == 4)
    fh = Wn(2)/2;
    if (fl >= .5 | fl <= 0 | fh >= .5 | fh <= 0.)
    error('Frequencies must fall in range between 0 and 1.')
    end
    c1=fh-fl;
    if (c1 <= 0)
    error('Wn(1) must be less than Wn(2).')
    end
    else
    c1=fl;
    if (fl >= .5 | fl <= 0)
    error('Frequency must lie between 0 and 1')
    end
    end

    nhlf = fix((N + 1)/2);
    i1=1 + odd;

    if Btype == 1 % lowpass
    if odd
    b(1) = 2*c1;
    end
    xn=(odd:nhlf-1) + .5*(1-odd);
    c=pi*xn;
    c3=2*c1*c;
    b(i1:nhlf)=(sin(c3)./c);
    b = real([b(nhlf:-1:i1) b(1:nhlf)].*wind(:)');
    gain = abs(polyval(b,1));
    b = b/gain;
    return;

    elseif Btype ==2 % bandpass
    b(1) = 2*c1;
    xn=(odd:nhlf-1)+.5*(1-odd);
    c=pi*xn;
    c3=c*c1;
    b(i1:nhlf)=2*sin(c3).*cos(c*(fl+fh))./c;
    b=real([b(nhlf:-1:i1) b(1:nhlf)].*wind(:)');
    gain = abs(polyval(b,exp(sqrt(-1)*pi*(fl+fh))));
    b = b/gain;
    return;

    elseif Btype == 3 % highpass
    b(1)=2*c1;
    xn=(odd:nhlf-1);
    c=pi*xn;
    c3=2*c1*c;
    b(i1:nhlf)=sin(c3)./c;
    att=60.;
    b=real([b(nhlf:-1:i1) b(1:nhlf)].*wind(:)');
    b(nhlf)=1-b(nhlf);
    b(1:nhlf-1)=-b(1:nhlf-1);
    b(nhlf+1:N)=-b(nhlf+1:N);
    gain = abs(polyval(b,-1));
    b = b/gain;
    return;

    elseif Btype == 4 % bandstop
    b(1) = 2*c1;
    xn=(odd:nhlf-1)+.5*(1-odd);
    c=pi*xn;
    c3=c*c1;
    b(i1:nhlf)=2*sin(c3).*cos(c*(fl+fh))./c;
    b=real([b(nhlf:-1:i1) b(1:nhlf)].*wind(:)');
    b(nhlf)=1-b(nhlf);
    b(1:nhlf-1)=-b(1:nhlf-1);
    b(nhlf+1:N)=-b(nhlf+1:N);
    gain = abs(polyval(b,1));
    b = b/gain;
    return;
    end

     
  • At 4:09 PM, Anonymous Anonymous said…

    Hi, I am now learning about DSP. I want to get the values for fir1(50,o.2) using the code that you have written. But when i matched the results using your code with the results that i got from matlab, they are very different. Is it possible to tell me what values do i need to change in your code to get the correct results? Filter order 50, Wn 0.2. Thanks

     
  • At 7:31 AM, Anonymous Anonymous said…

    [u][b]Xrumer[/b][/u]

    [b]Xrumer SEO Professionals

    As Xrumer experts, we possess been using [url=http://www.xrumer-seo.com]Xrumer[/url] for the benefit of a wish leisure now and know how to harness the enormous power of Xrumer and build it into a Banknotes machine.

    We also purvey the cheapest prices on the market. Assorted competitors will charge 2x or consistent 3x and a destiny of the term 5x what we charge you. But we maintain in providing prominent service at a low affordable rate. The entire direct attention to of purchasing Xrumer blasts is because it is a cheaper variant to buying Xrumer. So we train to support that contemplating in mind and provide you with the cheapest standing possible.

    Not simply do we have the best prices but our turnaround time after your Xrumer posting is super fast. We will pull someone's leg your posting done before you distinguish it.

    We also produce you with a sated log of well-heeled posts on contrary forums. So that you can get the idea seeking yourself the power of Xrumer and how we get harnessed it to help your site.[/b]


    [b]Search Engine Optimization

    Using Xrumer you can trust to apprehend thousands upon thousands of backlinks for your site. Scads of the forums that your Place you settle upon be posted on have high PageRank. Having your association on these sites can truly serve strengthen up some crown dignity recoil from links and as a matter of fact riding-boot your Alexa Rating and Google PageRank rating via the roof.

    This is making your instal more and more popular. And with this inflate in regard as grammatically as PageRank you can keep in view to witness your milieu really rank gamy in those Search Motor Results.
    Transport

    The amount of transportation that can be obtained nearby harnessing the power of Xrumer is enormous. You are publishing your plat to tens of thousands of forums. With our higher packages you may equivalent be publishing your locale to HUNDREDS of THOUSANDS of forums. Create 1 post on a in demand forum disposition almost always rig out 1000 or so views, with communicate 100 of those people visiting your site. These days assume tens of thousands of posts on popular forums all getting 1000 views each. Your see trade ordain associate sometimes non-standard due to the roof.

    These are all targeted visitors that are interested or bizarre about your site. Envision how innumerable sales or leads you can achieve with this colossal figure up of targeted visitors. You are line for line stumbling upon a goldmine primed to be picked and profited from.

    Keep in mind, Traffic is Money.
    [/b]

    GET YOUR TWOPENNY BLAST TODAY:


    http://www.xrumer-seo.com

     
  • At 9:27 PM, Anonymous Anonymous said…

    [B]NZBsRus.com[/B]
    Lose Idle Downloads Using NZB Files You Can Rapidly Find HD Movies, PC Games, MP3 Singles, Applications and Download Them at Electric Rates

    [URL=http://www.nzbsrus.com][B]Usenet[/B][/URL]

     
  • At 6:27 AM, Anonymous Anonymous said…

    Reprimand to terms latitude the animalistic with two backs casinos? greater than this up to date [url=http://www.realcazinoz.com]casino[/url] examination and wing it denigrate online casino games like slots, blackjack, roulette, baccarat and more at www.realcazinoz.com .
    you can also announce to our blooming [url=http://freecasinogames2010.webs.com]casino[/url] barter something at http://freecasinogames2010.webs.com and snowball the premier loving genially aloof !
    another exquisiteness [url=http://www.ttittancasino.com]casino spiele[/url] more is www.ttittancasino.com , pro german gamblers, command done free-flowing online casino bonus.

     
  • At 3:04 PM, Anonymous Anonymous said…

    Ola, what's up amigos? :)
    Hope to receive some assistance from you if I will have any quesitons.
    Thanks in advance and good luck! :)

     
  • At 9:24 PM, Anonymous Anonymous said…

    singles in newburyport [url=http://loveepicentre.com/]dating polen[/url] married and dating http://loveepicentre.com/ severnaparksingles

     
  • At 6:56 PM, Anonymous Anonymous said…

    Hello,
    I have developed a new clean web 2.0 wordpress theme.

    Has 2 colours silver and blue, has custom header(colour or image).
    I am curently working on it, so if you have suggestions let me know.

    You can view live demo and download from here www.getbelle.com
    If you found bug reports or you have suggestions pm me.
    Wish you a happing using.

    many thanks to [url=http://www.usainstantpayday.com/]USAInstantPayDay.com[/url] for paying the hosting and developement of the theme

    seigreera

     
  • At 10:30 AM, Anonymous Anonymous said…

    inseparable's oar in in in concealed this without payment or execrate [url=http://www.casinoapart.com]casino[/url] perk at the colossal [url=http://www.casinoapart.com]online casino[/url] signal with 10's of unfledged [url=http://www.casinoapart.com]online casinos[/url]. give a speech to oneself to [url=http://www.casinoapart.com/articles/play-roulette.html]roulette[/url], [url=http://www.casinoapart.com/articles/play-slots.html]slots[/url] and [url=http://www.casinoapart.com/articles/play-baccarat.html]baccarat[/url] at this [url=http://www.casinoapart.com/articles/no-deposit-casinos.html]no lees casino[/url] , www.casinoapart.com
    the finest [url=http://de.casinoapart.com]casino[/url] terminated the bracket of UK, german and all to the world. so in the past all means of the treatment of the choicest [url=http://es.casinoapart.com]casino en linea[/url] corroborate us now.

     
  • At 5:09 PM, Anonymous Anonymous said…

    You could easily be making money online in the underground world of [URL=http://www.www.blackhatmoneymaker.com]blackhat training[/URL], You are far from alone if you have no clue about blackhat marketing. Blackhat marketing uses not-so-popular or little-understood methods to build an income online.

     
  • At 11:01 PM, Anonymous Anonymous said…

    mircette birth control pills couponscompare canada pharmacy zoloft

    [url=http://www.bebo.com/buylevitraonline1]levitra buy levitra online[/url]

     
  • At 2:39 AM, Anonymous Anonymous said…

    http://meen.in/claritin/claritin-ca
    [url=http://meen.in/fexofenadine/direction-for-allegra-fexofenadine-hcl-oral-suspension]body packing drugs photos[/url] statin drugs and ibuprofen [url=http://meen.in/celebrex/abuse-celebrex]abuse celebrex[/url]
    how long does it take to get results of urine drug rest http://meen.in/claritin/claritin-causing-depression
    [url=http://meen.in/cipro/cipro-recall]generic cialis or tadalafil works just as well as the[/url] shein drug company [url=http://meen.in/flomax/flomax-tamsulosin-new-mexico]flomax tamsulosin new mexico[/url]
    what is cialis product http://meen.in/celecoxib/celebrex-celecoxib-http-wwwfdagov-cder-drug-infopage
    [url=http://meen.in/clomid/bee-pollen-and-taking-clomid-for-getting-pregnant]cocaine drug screening[/url] jobs walgreens specialty pharmacy [url=http://meen.in/ceftin/is-gastritis-a-side-affect-of-ceftin]is gastritis a side affect of ceftin[/url] effects of snorting viagra [url=http://meen.in/cefdinir/onnicef-cefdinir]onnicef cefdinir[/url]

     
  • At 7:26 PM, Anonymous Anonymous said…

    workplace travel http://atravel.in/airline_australian-airline-travel student travel at discounts
    [url=http://atravel.in/travel_liberty-travel-and-85018]unknown travel destinations[/url] puget sound travel league basketball [url=http://atravel.in/travel_dwi-conviction-limiting-travel]dwi conviction limiting travel[/url]
    travel la paz baja mexico http://atravel.in/plane-tickets_plane-tickets-under-100-dollars
    [url=http://atravel.in/tour_boston-and-sightseeing-and-tour]constellation travel services[/url] cheap travel package cruise world [url=http://atravel.in/motel_delaney-and-bonnie-motel-shot]delaney and bonnie motel shot[/url]
    niagra falls travel http://atravel.in/tours_whale-watching-tours-in-virginia best price on freezer for car travel [url=http://atravel.in/travel_pensacola-travel]pensacola travel[/url]

     
  • At 2:02 PM, Anonymous Anonymous said…

    skyway avalon expandable vertical travel case http://wikitravel.in/tour/tour-itatiaia jogger travel systems
    [url=http://wikitravel.in/tour/planet-perth-wine-tour]travel sleep sack[/url] stral travel oil mixtures [url=http://wikitravel.in/airlines/tiara-airlines]tiara airlines[/url]
    public service emergency travel assistance http://wikitravel.in/travel/jamaica-travel-brochure
    [url=http://wikitravel.in/adventure]top travel destination[/url] how ling would it take to travel from earth to mercury [url=http://wikitravel.in/airlines/reno-nevada-airlines]reno nevada airlines[/url]
    last minute deals on air travel from canada http://wikitravel.in/adventure/adventure-travel-women adventure travel uk [url=http://wikitravel.in/expedia/expedia-air-travel-cheap-airfare]expedia air travel cheap airfare[/url]

     
  • At 3:54 PM, Anonymous Anonymous said…

    adult comment for myspace http://theporncollection.in/moms/moms-fuckink-blackzilla
    [url=http://theporncollection.in/gay-man/black-hairy-gay-men]anal dped[/url] sexy woman pirate photo [url=http://theporncollection.in/hentai-porn/doa-hitomi-karate-hentai]doa hitomi karate hentai[/url]
    tokiki breast hentai http://theporncollection.in/lesbian-xxx/kent-lesbian-dating
    [url=http://theporncollection.in/gay-man/gay-pride-merchandise-wholesale]european anal[/url] raven riley halo dildo [url=http://theporncollection.in/orgasm/lesbian-orgasm-clips]lesbian orgasm clips[/url]
    amateur videos free adult http://theporncollection.in/hentai-porn/hentai-kiddy-grade
    [url=http://theporncollection.in/incest/abortions-after-being-raped-or-incest]dragonball z hentai clips[/url] animal amateur sex videos [url=http://theporncollection.in/best-porn/drunk-porn-glory-hole-porn]drunk porn glory hole porn[/url]
    japanese girls dildo http://theporncollection.in/best-porn/best-porn-removal-from-pc
    [url=http://theporncollection.in/gay-boy/jessie-is-gay]female porn agencies[/url] zelda hentai part 3 [url=http://theporncollection.in/masturbating/free-woman-masturbating-movies]free woman masturbating movies[/url]

     
  • At 10:47 PM, Anonymous Anonymous said…

    female dildo insertions http://xwe.in/thongs/uk-girls-in-thongs
    [url=http://xwe.in/ass-video/petite-ass-video]nylons stocking amateur pictures video[/url] sexy sport picture [url=http://xwe.in/bondage/forced-fem-bondage]forced fem bondage[/url]
    adult short fiction stories http://xwe.in/orgy/baudrillard-what-are-you-doing-after-the-orgy
    [url=http://xwe.in/archive-adult/free-funny-adult-images]free hentai sex[/url] abena adult diaper buy locally [url=http://xwe.in/adult-xxx/adult-dallas-entertainment-news]adult dallas entertainment news[/url]
    sex girl porn http://xwe.in/thongs/busty-blondes-in-thongs
    [url=http://xwe.in/ass-video/bbw-monster-ass]furry adult flash[/url] chubby asian anal [url=http://xwe.in/blowjob]blowjob[/url]
    free full xxx videos online http://xwe.in/orgasm/how-to-make-my-girlfriend-orgasm
    [url=http://xwe.in/archive-adult/wildtyger-adult-stories]free adult entermainment[/url] paintball porn [url=http://xwe.in/fetish/los-angeles-fetish-ball]los angeles fetish ball[/url]

     
  • At 4:36 PM, Anonymous Anonymous said…

    fashion square mall http://www.thefashionhouse.us/?action=products&product_id=2496 donald j pliner shoes [url=http://www.thefashionhouse.us/funky-page6.html]dallas fashion photographer[/url] graphics designer resume sample
    http://www.thefashionhouse.us/olive-green-funky-color136.html st laurentsius leiwen [url=http://www.thefashionhouse.us/3-years-new-size34.html]discount medical shoes[/url]

     
  • At 7:35 PM, Anonymous Anonymous said…

    aldo shoes http://www.thefashionhouse.us/?action=products&product_id=2294 getting gas smell out of clothes [url=http://www.thefashionhouse.us/red-casual-color8.html]omg shoes[/url] jlo clothing and shoes
    http://www.thefashionhouse.us/on-sale-pants-type2.html toddler girls clothes [url=http://www.thefashionhouse.us/bacci-abbracci-brand57.html]laurentians quebec hotel[/url]

     
  • At 7:02 PM, Anonymous Anonymous said…

    http://xwv.in/xanax/xanax/info
    [url=http://xwv.in/loratadine/best/price/loratadine]australia drug elbows and ounces[/url] slang names for street drugs [url=http://xwv.in/naltrexone/naltrexone/savannah/georgia]naltrexone savannah georgia[/url]
    drugs street name ecstacy http://xwv.in/overdose/nortriptiline/overdose
    [url=http://xwv.in/naprosyn/naprosyn/summary/basis/approval/pediatric]resistance of salmonella due to antitumor drug[/url] pharmacy programs in ct [url=http://xwv.in/naprosyn/naprosyn/dosage]naprosyn dosage[/url]
    coupon levitra http://xwv.in/lexapro/generic/for/lexapro
    [url=http://xwv.in/lipitor/lipitor/replacement]pharmacy risk groups[/url] medicine geriatrie [url=http://xwv.in/pain-relief/pain/relief/therapy/for/cats]pain relief therapy for cats[/url] prescription drug card [url=http://xwv.in/viagra/viagra/in/australia]viagra in australia[/url]

     
  • At 9:31 PM, Anonymous Anonymous said…

    kiss iii blackjack winning http://xwn.in/jokers_paul-hardcastle-jokers-wild virgiia lottery
    [url=http://xwn.in/slot_triumph-slot-cars]free casinos to play online[/url] free bingo games to download [url=http://xwn.in/lottery_lottery-did-al-win]lottery did al win[/url]
    ohio lottery mega millions http://xwn.in/casino-online_irish-pub-and-rampart-casino
    [url=http://xwn.in/jokers_auburn-maine-mall-jokers]wendover casinos[/url] bingo ticket holder [url=http://xwn.in/casino-playing-cards_old-west-playing-cards]old west playing cards[/url]
    bingo smith basketball summer camp http://xwn.in/gambling-online_national-gambling-impact-study-commission wild rose casino emmetsburg [url=http://xwn.in/joker_fatboy-slim-joker]fatboy slim joker[/url]

     
  • At 9:33 PM, Anonymous Anonymous said…

    http://jqz.in/provera/pros-and-cons-of-depo-provera
    [url=http://jqz.in/pantoprazole/pantoprazole-induced-pancreatitis]ct board of pharmacy[/url] drug addiction at the work place [url=http://jqz.in/pantoprazole/pantoprazole-medication]pantoprazole medication[/url]
    pharmacy ce in mexico http://jqz.in/proscar/proscar-finasteride-north-carolina
    [url=http://jqz.in/perindopril/star-pharmaceuticals-perindopril]articles on how drugs community[/url] barr labs generic drug manufacturer [url=http://jqz.in/prostatitis/prostatitis-in-dogs]prostatitis in dogs[/url]
    levitra play of the year http://jqz.in/permethrin/permethrin-side-effects
    [url=http://jqz.in/propranolol/propranolol-and-difficulty-breathing]hampton pharmacy school[/url] can am mueller sports medicine [url=http://jqz.in/prostatitis/prostatitis-harvey-diamond]prostatitis harvey diamond[/url] building a place for drug users to go with nurse [url=http://jqz.in/phenazopyridine/phenazopyridine-200mg]phenazopyridine 200mg[/url]

     
  • At 2:26 PM, Anonymous Anonymous said…

    poker gambling top http://lwv.in/betting/sports-betting-info texas live lottery drawing
    [url=http://lwv.in/online-casino/wildbills-casino-tahoe]quebec casino official blackjack rules[/url] depositing money online by check to online casinos [url=http://lwv.in/lottery/mo-lottery-results]mo lottery results[/url]
    free online casinos craps gambling http://lwv.in/online-casino/american-casino-guides
    [url=http://lwv.in/lottery/improving-chances-at-winning-the-lottery]harry potter playing cards box[/url] casinos keno casino game [url=http://lwv.in/roulette/pico-roulette-password-nickname]pico roulette password nickname[/url]
    aston villa lottery http://lwv.in/lottery/bc-lottery card counting blackjack learn advantage [url=http://lwv.in/keno/best-online-casinos-play-keno-free]best online casinos play keno free[/url]

     
  • At 7:46 AM, Anonymous Anonymous said…

    brats the movie soundtrack [url=http://moviestrawberry.com/films/film_don_donald/]don donald[/url] hiding out movie clip http://moviestrawberry.com/films/film_bronson/ memoirs of a geisha movie critic
    lakshyam telugu movie free online [url=http://moviestrawberry.com/films/film_reservoir_dogs/]reservoir dogs[/url] movie goin surfin http://moviestrawberry.com/films/film_dragon_storm/ the seeker the dark is rising movie
    movie special effects [url=http://moviestrawberry.com/films/film_thunderbirds/]thunderbirds[/url] montecito locationof movie hotel
    hardcore sex free movie [url=http://moviestrawberry.com/films/film_engaged_to_kill/]engaged to kill[/url] downloading babes in toyland movie http://moviestrawberry.com/films/film_tom_jones/ saturn 3 movie
    celebrity nude movie [url=http://moviestrawberry.com/films/film_double_jeopardy/]double jeopardy[/url] how to copy a dvd movie http://moviestrawberry.com/films/film_dead_wood/ stephen king movie the mist

     
  • At 5:41 PM, Anonymous Anonymous said…

    how to get free movie downloads [url=http://moviestrawberry.com/films/film_friends_70/]friends 70[/url] seven movie poster http://moviestrawberry.com/films/film_ross_noble_fizzy_logic/ medevial movie ottawa
    teendreams movie [url=http://moviestrawberry.com/films/film_capricorn_one/]capricorn one[/url] active movie http://moviestrawberry.com/hqmoviesbycountry/country_usa/?page=52 pull down movie screens
    mythology in the pursuit of hapyness movie [url=http://moviestrawberry.com/films/film_knight_rider_70/]knight rider 70[/url] gay movie actor lance
    porn movie [url=http://moviestrawberry.com/films/film_the_insider/]the insider[/url] casino royale movie http://moviestrawberry.com/hqmoviesbyyear/year_1936_high-quality-movies/ best john wayne movie
    movie rentals west chester [url=http://moviestrawberry.com/films/film_geronimo/]geronimo[/url] titanic movie free download http://moviestrawberry.com/hqmoviesbyyear/year_1958_high-quality-movies/ divx movie rips

     
  • At 4:53 PM, Anonymous phan said…

    #define PI 3.14159265

    int lowfir1(unsigned int _N, float Wn, double* coeff)
    {
    unsigned int odd, i, j, halfN, N;
    double gain;
    double *wind=0, *xn=0, *b=0, *bb=0;

    N = _N + 1; //filter length
    odd = N - (N/2)*2; /* odd = rem(N,2) */

    if (odd == 0){ //even length
    halfN = N/2;
    }else{
    halfN = (N+1)/2;
    }

    //allocate memory
    wind = (double*)calloc(N, sizeof(double));
    xn = (double*)calloc(halfN, sizeof(double));
    b = (double*)calloc(halfN, sizeof(double));
    bb = (double*)calloc(N, sizeof(double));

    if(!wind || !xn || !b || !bb){
    return -1; //memory error
    }

    /*wind = hamming(N);*/
    for (i=0; i < halfN; i++){
    wind[i] = 0.54 - 0.46 * cos ((2 * PI * i) / (N-1));
    }

    if(odd == 0) j=1;
    else j=2;

    for (i=halfN; i < N; i++, j++){
    wind[i] = wind[halfN -j];
    }

    /* Lowpass */
    if(odd)
    b[0] = (double)Wn;

    for (i=0; i < halfN; i++){
    xn[i] = PI*(i + 0.5 * (1 - odd));
    }

    /* b(i1:nhlf)=(sin(Wn*xn)./xn) */
    for (i=0; i < halfN; i++)
    {
    if(xn[i] ==0)
    b[i] ==1;
    else
    b[i] = sin(xn[i]*Wn) / xn[i];
    }

    /* bb = real([b(nhlf:-1:i1) b(1:nhlf)].*wind(:)') */

    for (i=0,j=halfN-1; i < halfN; i++, j--){
    bb[i] = b[j];
    }

    if(odd == 0) j=0;
    else j=1;

    for (i=halfN; i < N; i++,j++){
    bb[i] = b[j];
    }

    for (i=0; i < N; i++){
    bb[i] = bb[i] * wind[i];
    }

    /* gain = abs(polyval(b,1)); */
    gain = 0;
    for (i=0; i < N; i++){
    gain += bb[i];
    }
    /* b = b / gain */
    for (i=0; i < N; i++){
    bb[i] = bb[i] / gain;
    }

    memcpy(coeff, bb, N*sizeof(double));

    //free memory
    if(wind) free(wind);
    if(xn) free(xn);
    if(b) free(b);
    if(bb) free(bb);

    return N; //OK

    }

     
  • At 3:54 AM, Blogger porfirio said…

    >> well i have only a question... what is the role of att=60.;? in the part of the highpass... thanks a lot

     
  • At 6:55 PM, Anonymous Anonymous said…

    Arian Foster Women's Jersey

    In brilliancy it exceeds all other green gems excepting only the very rare green sapphire You never have to judge or be right because you know that you cannot make anyone believe in themselves, though you can show them what it looks like Be prepared to state your intentions and to show respect to the guidelines of the list

    Texan Arian Foster Jersey

    Naming your baby after him may keep you in the will, but naming your puppy after him won't Example: Take rich 'powerful' menThere are other useful definitions in this field, for example, creativity can be defined as consisting of a number of ideas, a number of diverse ideas and a number of novel ideas By helping others, anger and pain are transformed into power; the power to make our world better in the wake of crisis

    Cheap Jerseys Paypal

     
  • At 7:44 AM, Anonymous Anonymous said…

    [url=http://www.onlinecasinos.gd]casinos online[/url], also known as settled casinos or Internet casinos, are online versions of distinguished ("buddy and mortar") casinos. Online casinos approve gamblers to gather role in and wager on casino games from start to strain the Internet.
    Online casinos superficially invite odds and payback percentages that are comparable to land-based casinos. Some online casinos site forth higher payback percentages as a countermeasure with a viewpoint reproach written agreement games, and some insist upon known payout concord audits on their websites. Assuming that the online casino is using an fittingly programmed indefinitely epitomize up generator, eatables games like blackjack sine qua non an established allow edge. The payout slice as a replacement pro these games are established via the rules of the game.
    Numerous online casinos sublease into public notice or prevail their software from companies like Microgaming, Realtime Gaming, Playtech, Prevailing Ploy Technology and CryptoLogic Inc.

     
  • At 9:22 PM, Anonymous Anonymous said…

    yjh [url=http://www.canadagooseparka-shop.com]Canada Goose Outlet[/url] lhe http://www.canadagooseparka-shop.com bub [url=http://www.goosejacket-sale.com]Canada Goose[/url] fjl http://www.goosejacket-sale.com rji [url=http://www.gooseoutlet-shop.com]Canada Goose Jacket[/url] wge http://www.gooseoutlet-shop.com rbb [url=http://www.gooseparka-shops.com]Canada Goose Outlet[/url] zay http://www.gooseparka-shops.com tnp [url=http://www.goosesale-online.com]Canada Goose Jacket[/url] eja http://www.goosesale-online.com tzw http://authorcraftforum.co.uk/blog_entry.php?user=kjkskq20&blogentry_id=2423856
    http://www.dotayou.com/thread-30861-1-1.html
    http://www.9eo.cn/plus/view.php?aid=237771
    http://m-gallery.ru/english/node/119#comment-146235
    http://show.qatarhost.com/showthread.php?p=20746#post20746

     
  • At 6:45 PM, Anonymous Anonymous said…

    top [url=http://www.xgambling.org/]001[/url] hinder the latest [url=http://www.realcazinoz.com/]online casino[/url] autonomous no consign perk at the chief [url=http://www.baywatchcasino.com/]online casino
    [/url].

     
  • At 11:30 PM, Anonymous Anonymous said…

    [url=http://amoxicilline.webs.com/]acheter Kesium
    [/url][url=http://acheter-amoxicilline.webs.com/]agram romanis
    [/url] amoxicilline winthrop
    crise d'urticaire amoxicilline
    amoxicilline dispersible

     
  • At 1:31 AM, Anonymous Anonymous said…

    Hello Jedora,
    Thanks for your post.
    When I am running fir1(256,1/64, 'low'); in matlab, I am not getting the same answer that you get it here, which part did I do wrong?

    Best,
    Nafise

     
  • At 6:46 PM, Anonymous Anonymous said…

    Hi, do u have bandpass filter code? I can't seem to generate codes from matlab.

     
  • At 1:05 PM, Anonymous Anonymous said…

    Hi Jedora,
    Whenever i enter odd number for filter length your code doesnt work. I have entered 29 as my filter length. Could you please help me with the same.

     

Post a Comment

<< Home