Пример #1
0
        filter_FIR getFirFilter(int order, double cutOffFrequeny1, double cutOffFrequeny2, int type, WindowingFunction wf)
        {
            filter_FIR filter = new filter_FIR();


            switch (type)
            {
            case 1:    //Low pass
                filter = filter.generateLowPass(order, cutOffFrequeny1, wf);
                break;

            case 2:    //High pass
                filter = filter.generateHighPass(order, cutOffFrequeny1, wf);
                break;

            case 3:    //Band pass
                filter = filter.generateBandPass(order, cutOffFrequeny1, cutOffFrequeny2, wf);
                break;

            case 4:    //Band stop
                filter = filter.generateBandStop(order, cutOffFrequeny1, cutOffFrequeny2, wf);
                break;
            }
            return(filter);
        }
Пример #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            List <string> lines = new List <string>();

            filter_FIR result = getFirFilter((int)numOrder.Value, (double)numFreq1.Value, (double)numFreq2.Value, FirType, wf);



            if (result == null)
            {
                return;
            }

            lines.Add("SignalPlant FIR Filter design");
            lines.Add("");
            lines.Add("Order: " + (int)numOrder.Value);
            lines.Add("Frequency 1: " + (double)numFreq1.Value + " Hz");
            if (FirType >= 3)
            {
                lines.Add("Frequency 2: " + (double)numFreq2.Value + " Hz");
            }

            lines.Add("Windowing function: " + WindowingFunction.windowNames[wf.winType]);
            if (WindowingFunction.numParams[wf.winType] > 0)
            {
                lines.Add("Windowing function parameter: " + wf.winParam);
            }

            lines.Add("");

            lines.Add("-------Coeffitients-----------------");
            lines.Add("No. \t Value");
            lines.Add("------------------------------------");

            for (int i = 0; i < result.coeffs.Count; i++)
            {
                lines.Add(i + "\t\t" + result.coeffs[i].ToString());
            }


            string wholeTExt = "";

            foreach (string prt in lines)
            {
                wholeTExt = wholeTExt + "\r\n" + prt;
            }

            System.Windows.Forms.Clipboard.SetText(wholeTExt);
        }