Фильтрация целочисленного сигнала

Все что касается фильтрации
kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Фильтрация целочисленного сигнала

Сообщение kaa »

Добрый день!

Дано:
Целочисленный сигнала
Фильтр с коэффициентами с плавающей точкой и без усиления\ослабления (0 дБ).

Однако при фильтрации максимальное значение выходного сигнала иногда превышает максимум входного, а следовательно и размер переменной под хранение.

Как правильно обрабатывать такое событие? Достаточно ли обрезать выходное значение под размер переменной? (Или этот может внести в сигнал неожиданные спектральные составляющие ... ). При этом погрешность такого округления вроде бы устраивает.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Фильтрация целочисленного сигнала

Сообщение Бахурин Сергей »

Правильно такое событие не допускать. Разрядности должны приводиться таким образом, чтобы исключить переполнение регистров выходных фильтров.

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: Фильтрация целочисленного сигнала

Сообщение kaa »

Тогда мне нужно сделать ослабление до разрядности выходного сигнала?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Фильтрация целочисленного сигнала

Сообщение Бахурин Сергей »

Реальный фильтр имеет неравномерную в полосе пропускания АЧХ. В результате на некоторых частотах может появиться небольшое усиление. Это усиление надо учесть при прохождении сигнала таким образом, чтобы не возникало переполнения выхода. Например можно уменьшить входной сигнал на величину максимального усиления АЧХ фильтра, тогда на выходе он всегда будет в разрядности.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Фильтрация целочисленного сигнала

Сообщение Бахурин Сергей »

Обычно неравномерности АЧХ это доли дБ и надо дать по входу этот запас по уровню. Например если 16 бит разрядность входного сигнала (знаковая), то реальная максимальная амплитуда не должна превышать 29000, тогда будет порядка 1 дБ запас на обработку

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: Фильтрация целочисленного сигнала

Сообщение kaa »

На входе сигнал занимает всю разрядность, 16 бит. Если ослаблять, то уже имеющейся. При этом неравномерность составляет сотые дБ (около 0.02 дБ). Т.е нужно ослабить в 1.0023 раза. При этом ошибка фильтрации 10e-4 устраивает.

Не будет ли ослабление сигнала вносить большие погрешности, чем обрезка...

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Фильтрация целочисленного сигнала

Сообщение Бахурин Сергей »

Покажите пример. Сигнал на входе, на выходе (с переполнением) и фильтр который вносит перепонение

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: Фильтрация целочисленного сигнала

Сообщение kaa »

Я убедился в необходимости запаса по уровню во входном сигнале, так что вы ответили на вопрос. Спасибо)

Код: Выделить всё


s = [32767,32133,30242,27144,22941,17784,11868,5424,-1286,-7981,-14372,-20175,-25124,-28983,-31559,-32711,-32364,-30506,-27200,-22580,-16846,-10259,-3132,4191,11341,17953,23676,28198,31261,32680,32351,30265,26509,21265,14804,7473,-322,-8137,-15517,-22020,-27245,-30858,-32617,-32385,-30148,-26016,-20223,-13113,-5126,3232,11417,18884,25124,29698,32271,32637,30742,26685,20725,13260,4808,-4031,-12614,-20302,-26509,-30749,-32672,-32102,-29048,-23718,-16499,-7942,1286,10450,18802,25645,30394,32626,32122,28888,23170,15429,6314,-3392,-12836,-21173,-27640,-31628,-32742,-30845,-26077,-18851,-9819,181,10202,19276,26509,31169,32767,31107,26319,18851,9435,-985,-11341,-20553,-27640,-31828,-32639,-29948,-24007,-15429,-5126,5780,16081,24613,30394,32736,31333,26307,18204,7942,-3292,-14173,-23396,-29832,-32672,-31531,-26509,-18188,-7571,4031,15162,24400,30542,32766,30742,24693,15375,3991,-7962,-18884,-27289,-32010,-32364,-28259,-20223,-9338,2891,14750,24547,30858,32742,29882,22652,12074,-322,-12706,-23227,-30280,-32767,-30265,-23113,-12372,322,13002,23676,30636,32742,29612,21705,10259,-2891,-15606,-25782,-31710,-32364,-27586,-18137,-5582,7962,20175,28936,32691,30742,23382,11868,-1789,-15162,-25844,-31880,-32133,-26509,-15993,-2491,11511,23396,30912,32601,28095,18204,4788,-9589,-22139,-30394,-32699,-28550,-18719,-5126,9531,22301,30579,32639,28012,17598,3512,-11341,-23856,-31379,-32281,-26319,-14714,80,14894,26509,32367,31138,23041,9819,-5622,-19841,-29630,-32742,-28421,-17598,-2711,12836,25444,32153,31350,23170,9493,-6471,-20927,-30394,-32556,-26836,-14571,1286,16863,28310,32758,29048,18054,2491,-13736,-26509,-32542,-30242,-20143,-4808,11811,25380,32315,30742,21019,5681,-11209,-25124,-32288,-30714,-20772,-5126,11961,25782,32482,30148,19374,3132,-14028,-27245,-32729,-28860,-16690,322,17275,29232,32664,26509,12521,-5205,-21418,-31261,-31741,-22652,-6688,11341,25943,32617,29259,16846,-824,-18271,-30029,-32364,-24480,-8817,9685,25124,32523,29447,16828,-1286,-19015,-30542,-32036,-22941,-6215,12614,27256];
filter = [0,0,-1.43101000000000e-18,-0.000885369000000000,-0.00179830000000000,-0.00221207000000000,-0.00165480000000000,3.70656000000000e-18,0.00233542000000000,0.00442272000000000,0.00513455000000000,0.00365804000000000,-6.98445000000000e-18,-0.00477376000000000,-0.00875545000000000,-0.00988002000000000,-0.00686256000000000,1.12067000000000e-17,0.00857565000000000,0.0154382000000000,0.0171292000000000,0.0117166000000000,-1.61731000000000e-17,-0.0142574000000000,-0.0253751000000000,-0.0278667000000000,-0.0188870000000000,2.15504000000000e-17,0.0226372000000000,0.0400491000000000,0.0437666000000000,0.0295513000000000,-2.69045000000000e-17,-0.0352787000000000,-0.0624137000000000,-0.0683082000000000,-0.0462672000000000,3.17517000000000e-17,0.0559139000000000,0.0998891000000000,0.110728000000000,0.0762419000000000,-3.56208000000000e-17,-0.0966372000000000,-0.178634000000000,-0.206936000000000,-0.150965000000000,3.81176000000000e-17,0.230548000000000,0.500507000000000,0.754126000000000,0.934654000000000,1,0.934654000000000,0.754126000000000,0.500507000000000,0.230548000000000,3.81176000000000e-17,-0.150965000000000,-0.206936000000000,-0.178634000000000,-0.0966372000000000,-3.56208000000000e-17,0.0762419000000000,0.110728000000000,0.0998891000000000,0.0559139000000000,3.17517000000000e-17,-0.0462672000000000,-0.0683082000000000,-0.0624137000000000,-0.0352787000000000,-2.69045000000000e-17,0.0295513000000000,0.0437666000000000,0.0400491000000000,0.0226372000000000,2.15504000000000e-17,-0.0188870000000000,-0.0278667000000000,-0.0253751000000000,-0.0142574000000000,-1.61731000000000e-17,0.0117166000000000,0.0171292000000000,0.0154382000000000,0.00857565000000000,1.12067000000000e-17,-0.00686256000000000,-0.00988002000000000,-0.00875545000000000,-0.00477376000000000,-6.98445000000000e-18,0.00365804000000000,0.00513455000000000,0.00442272000000000,0.00233542000000000,3.70656000000000e-18,-0.00165480000000000,-0.00221207000000000,-0.00179830000000000,-0.000885369000000000,-1.43101000000000e-18];
sFiltered = [0,-4.68899046700000e-14,-58.9248961000000,-54.2228316000000,48.0751450630000,97.1633545400000,-1.53033185090000e-13,-199.158756990000,-157.366165800000,174.198408974000,339.032446760000,-3.13280749270000e-13,-521.377028620000,-388.587289760000,451.217431984000,866.949773290000,-4.85309004790000e-13,-1250.09860137000,-931.629255100000,1130.86359291400,2266.64607104000,-6.08265135500000e-13,-3829.17162652000,-3378.25559042000,5528.17842282900,20224.6703434900,32767,37167.1709360800,34398.5675285200,30293.6985732950,29140.0489562700,30242,30516.8816202000,28570.3348598200,25805.9722699470,23966.3911084100,22941,21556.3075890400,19186.0725921200,16421.6975042590,14012.1118322800,11868,9561.49013813000,6859.50344305000,4019.32086502400,1328.66711469000,-1286,-3918.44668523000,-6623.40542004000,-9304.38117412000,-11874.0668305200,-14372,-16793.1122493900,-19075.2460334270,-21255.1006770490,-23273.9748824400,-25124,-26828.6204878900,-28315.0818803560,-29620.2893876990,-30710.1631700100,-31559,-32216.2731328400,-32610.8092924160,-32774.7613000770,-32705.2764091000,-32364,-31818.3047214500,-31011.1844059560,-29964.9252387920,-28708.7034838400,-27200,-25512.3747711700,-23614.9616221910,-21516.5864797400,-19272.8420537100,-16846,-14301.1153370400,-11641.4891743350,-8861.45752039500,-6033.03627691000,-3132.00000000000,-200.506129070000,2722.74764624700,5657.41680924500,8528.71054098000,11341,14085.1384434400,16692.5775304990,19194.3622036530,21527.8983877700,23676,25666.1874869800,27411.9478869940,28950.8581885930,30245.5114539300,31261,32057.8362916400,32548.4573006800,32770.5753901200,32719.6397444100,32351,31746.6763213600,30836.8219590410,29652.9972420320,28224.8491341800,26509,24591.5851116100,22436.4368602410,20063.0506407150,17529.1363979200,14804,11958.5871448800,9000.22288805300,5932.30292775400,2828.02931653000,-322.000000000000,-3479.12698443000,-6591.96418555200,-9674.51541906300,-12654.5696136700,-15517,-18266.0929777600,-20816.0589554900,-23196.0939552380,-25351.2924104300,-27245,-28925.4243401600,-30291.3084690650,-31382.2697694160,-32173.8140125700,-32617,-32793.8878006800,-32611.2237342450,-32111.3676780320,-31306.2259860800,-30148,-28733.8901646100,-27002.1091192270,-24989.1636103730,-22740.4978549900,-20223,-17524.9799309700,-14632.9597728170,-11569.7536074950,-8403.43503784000,-5126,-1793.91965419000,1552.62830829000,4910.20415316000,8205.19887974000,11417,14536.8403789600,17479.2907760620,20262.0911178290,22825.0774293700,25124,27201.8354309500,28948.8534930950,30400.8695168580,31526.7721905900,32271,32718.5325230900,32764.4156588840,32455.4148177610,31798.0115905600,30742,29392.2933010400,27677.6274421870,25645.0275821480,23337.0084283100,20725,17905.5412117900,14862.3342697320,11631.1091966220,8278.62556868000,4808,1279.88515320000,-2260.52949138600,-5798.33790184200,-9261.26401214000,-12614,-15850.0974536400,-18873.9580933020,-21696.4009377000,-24260.4469627200,-26509,-28493.4524953900,-30094.6710602230,-31347.6194859650,-32227.0266032000,-32672,-32778.1850261000,-32438.3635714850,-31703.7465868940,-30588.3443261200,-29048,-27195.0197899600,-24967.4062494200,-22419.5140309920,-19600.4810697000,-16499,-13210.2890444300,-9738.34848787100,-6125.82809922100,-2442.05934888000,1286.00000000000,5010.53939585000,8661.56586825800,12221.0713645480,15620.6404164800,18802,21780.4170119300,24441.1116227410,26797.9509229370,28805.5793517100,30394,31638.0148268400,32414.8218375480,32767.8596297320,32689.2973603100,32122,31176.9825573900,29764.4627212620,27946.3880461050,25755.6212683700,23170,20300.9236020400,17122.6428258380,13697.0399865590,10086.5383698200,6314,2454.34076563000,-1443.47452353000,-5336.86903759900,-9154.80895940000,-12836,-16368.3000861000,-19644.1180441050,-22655.2891631940,-25346.6259560200,-27640,-29591.0455924600,-31070.7914174140,-32110.0787978210,-32688.8837305400,-32742,-32374.6195322100,-31483.0870189920,-30129.3460575130,-28335.8896147400,-26077,-23471.0076626000,-20478.3160586410,-17172.5683842290,-13610.7757047000,-9819,-5886.46663493000,-1853.54232589200,2219.31675043500,6261.16530862000,10202,14014.4965691200,17592.6906332170,20911.7002399870,23912.9693959000,26509,28745.0327317500,30489.7393863820,31765.0998129820,32547.3062069700,32767,32525.7929164600,31718.3106130550,30408.0262754120,28615.2367621000,26319,23639.5573816900,20540.2172042990,17104.8128544110,13390.1604976600,9435,5332.09807248000,1129.12165460100,-3100.42743965000,-7285.35471125000,-11341,-15238.3396624500,-18864.0470983940,-22184.0270105370,-25141.2290680300,-27640,-29726.9898315100,-31269.9872189310,-32290.0770262940,-32767.9121536900,-32639,-32007.6035810400,-30778.4909397130,-29022.4333941430,-26766.1176754900,-24007,-20865.4915647300,-17325.0097151690,-13480.0689306280,-9392.55651383000,-5126.00000000000,-767.734646500000,3612.16284896500,7933.10073665700,12123.9057258100,16081,19786.5242175100,23114.2692493870,26032.3863423880,28491.3020688900,30394,31799.9972362300,32583.3699121620,32777.1135035190,32375.0940612000,31333,29762.8812371700,27597.0025138920,24922.7542733520,21780.9830827500,18204,14308.4587551200,10116.7180785510,5734.98832531100,1233.16027199000,-3292.00000000000,-7770.17014424000,-12098.8019941800,-16199.1960447900,-20003.8807275600,-23396,-26382.8190590300,-28830.2242024470,-30724.3151723540,-32031.5146776500,-32672,-32727.6853178900,-32097.7837137240,-30843.0868111970,-28980.4191226900,-26509,-23548.7565123700,-20082.0610312230,-16219.8329808590,-12022.0340390400,-7571.00000000000,-2970.13119591000,1705.43967088200,6344.45849008600,10872.1878013000,15162,19175.1882727700,22781.3287381970,25922.1833818900,28544.6711115900,30542,31958.8422546100,32676.2195198180,32719.9015903410,32085.1304972600,30742,28797.7799135000,26207.1634474690,23071.7456903420,19438.8283892800,15375.0000000000,10998.9205470800,6363.16588505200,1597.77682232000,-3221.09546337000,-7962.00000000000,-12552.4035177200,-16869.2154121590,-20818.5322681320,-24334.2121310100,-27289,-29692.7385028100,-31418.3722492200,-32458.2881350280,-32791.1305609800,-32364,-31264.6897985400,-29432.2942894840,-26954.0578154660,-23866.2002563100,-20223,-16146.4376695000,-11676.1555730370,-6952.68544120600,-2051.83667664000,2891,7781.71492969000,12501.9112191510,16930.7692676200,20993.3676114400,24547,27573.9758212800,29944.0440608360,31622.6866641350,32577.8028194000,32742,32184.1808284300,30837.4903513200,28776.4182855780,26030.9699050600,22652,18759.9058444500,14391.1220899410,9692.29643199200,4739.96170059000,-322.000000000000,-5385.33955265000,-10330.7619610480,-15018.8252351040,-19369.1296986100,-23227,-26555.3364786900,-29223.2266546100,-31178.5955472480,-32383.9984329000,-32767,-32383.1410535600,-31169.8286216220,-29196.3938121310,-26491.7120938800,-23113,-19179.0792446900,-14735.4445464980,-9937.81100181600,-4866.43399973000,322.000000000000,5511.25865217000,10574.9293965840,15359.6229863400,19780.6818343500,23676,26998.3259162700,29619.3117062440,31479.9159723740,32542.6223579700,32742,32128.6678968300,30655.0230596300,28396.4727529580,25387.5741064600,21705,17469.8114262500,12747.5109461850,7707.23760333500,2436.26277025000,-2891.00000000000,-8153.28936830000,-13212.9474440320,-17908.0641363390,-22151.8282090300,-25782,-28750.0746772400,-30936.8935913980,-32290.4324145580,-32780.3955870400,-32364,-31096.4933671200,-28957.3372400540,-26041.8167047390,-22398.2890062200,-18137,-13386.3060669500,-8240.28333635800,-2885.59962534400,2580.01544809000,7962,13136.7244898600,17957.7011006290,22264.8765092970,25974.2278448700,28936,31109.5466661600,32396.9583711540,32771.5350419570,32220.0689122200,30742,28408.3139493100,25239.9595057400,21366.7473885310,16858.0470438700,11868,6536.74701528000,992.206097514000,-4560.63715211800,-10014.1278607000,-15162,-19884.6828122200,-24036.7313814820,-27475.1510096150,-30127.5891959400,-31880,-32713.5496196200,-32570.4508711750,-31470.5197696220,-29429.0349761400,-26509,-22808.7551631500,-18403.1826910790,-13467.1419380690,-8096.22575694000,-2491.00000000000,3195.64887781000,8807.83550852200,14133.2163754010,19061.3902153300,23396,27033.0780789300,29850.2387943210,31747.7593082910,32680.3724660300,32601,31529.1103866600,29469.3032083060,26510.1328293010,22707.5405215000,18204,13133.7855714400,7629.00926272700,1908.55425634900,-3907.83395141000,-9589,-14977.3750566300,-19911.2830816630,-24198.0657903580,-27741.3890394500,-30394,-32088.4780069200,-32759.0252477690,-32383.6253640180,-30963.3542560900,-28550,-25219.1500219500,-21056.0255432080,-16232.0855318160,-10849.6537902700,-5126.00000000000,770.515938920000,6666.41653681500,12320.6959420790,17604.9248111500,22301,26270.2256896000,29386.6784020880,31522.2293755760,32621.8742530700,32639,31571.4865929800,29444.6469840310,26346.2625775440,22341.5604799200,17598,12257.5540853900,6481.39021213100,511.339161617001,-5513.98816410000,-11341,-16787.7900593000,-21685.3637455790,-25824.2609082590,-29101.0393621400,-31379,-32577.7647341800,-32661.2480785490,-31621.2361458420,-29475.3919246000,-26319,-22241.1458404100,-17373.9145266110,-11923.7399473800,-6020.61333957000,80.0000000000000,6184.04796397000,12097.0471991220,17559.6499318990,22432.7037485600,26509,29642.6450759100,31740.3696092420,32701.7830565590,32495.2262129200,31138,28654.6449451700,25137.3578318340,20732.9887643440,15548.9961687700,9819,3724.89724518000,-2528.88619065100,-8664.22013059000,-14520.2614122100,-19841,-24432.9302156500,-28154.2997608040,-30827.8017291470,-32376.1428875800,-32742,-31883.9708457100,-29850.6074310060,-26720.1858271370,-22570.2593597800,-17598,-11956.2615034000,-5847.96193459300,453.176962653999,6776.14890603000,12836,18409.9563836000,23317.4445291210,27322.5027818190,30308.3788297000,32153,32755.6924360700,32123.0908136180,30266.3431158530,27230.4165786100,23170,18200.4476338800,12516.5058320500,6373.48606235800,-55.3815042399997,-6471,-12635.7748266500,-18338.9436090310,-23303.1364509460,-27379.5305037600,-30394,-32196.2921857300,-32755.1850670310,-32022.0389566560,-30010.8373877800,-26836,-22574.9462603000,-17411.9347926760,-11577.7889479720,-5243.64075489000,1286,7767.75628135000,13967.7582365800,19581.1017363770,24433.2922373600,28310,31021.1565489200,32504.2500899830,32662.4371560210,31483.3880750500,29048,25399.8683674300,20714.1586785630,15198.5623257250,9021.93533581000,2491.00000000000,-4148.94902186000,-10645.9114029960,-16676.5707560710,-22045.5521172500,-26509,-29846.1953737100,-31971.6221572210,-32753.0006627790,-32157.5321895400,-30242,-27023.9232150000,-22674.6805407470,-17386.0299351780,-11327.3307494000,-4808,1924.21686840000,8601.70005988800,14887.0807298680,20567.6476335300,25380,29080.6080373500,31569.4625070640,32691.1837770910,32400.1683351000,30742,27719.1115852300,23506.2102858240,18288.7368541620,12241.5151747000,5681,-1137.63982826000,-7932.57346050200,-14354.5241209060,-20176.3880514800,-25124,-28937.3677263300,-31511.9081597730,-32682.5536969280,-32400.3779643000,-30714,-27623.2642987300,-23315.0250673990,-17980.7994042390,-11808.0250884600,-5126,1795.76331494000,8662.79461945500,15114.7582808000,20913.0416689100,25782,29451.9281697000,31825.4479912490,32742.1497443450,32160.6735214700,30148,26716.1124612900,22074.4500543010,16434.7196531440,10004.8879460600,3132,-3892.87543132000,-10765.4556734480,-17115.5456700290,-22697.2265436400,-27245,-30488.4460002100,-32351.4607114120,-32694.4557067480,-31496.6965690900,-28860,-24825.2438088200,-19634.4805988090,-13533.4988206610,-6758.70607418000,322,7389.92615661000,14137.6317117820,20190.1678824820,25301.8191020600,29232,31722.1288117200,32734.4537455640,32169.8184856130,30043.7212963900,26509,21653.3515698000,15759.4217694320,9118.92154487900,2001.97836708000,-5205,-12153.5318278400,-18544.2792590590,-24007.9207430340,-28311.9125634000,-31261,-32626.9255630800,-32428.7841387700,-30629.2271047990,-27297.2645323400,-22652,-16846.6730010600,-10207.6071999250,-3078.70745025000,4235.90495431000,11341.0000000000,17863.5086721500,23531.5445345940,28000.8766336350,31071.3217326700,32617,32464.8727474900,30711.2847392010,27404.9792797830,22685.3744346800,16846,10119.5034009900,2870.58064536200,-4506.48821079200,-11681.4027926900,-18271,-23894.6248980600,-28335.1530534810,-31302.2988166950,-32654.8309601200,-32364,-30342.8024112500,-26780.9864776780,-21833.8332014560,-15723.5254608700,-8817.00000000000,-1432.63680956000,6044.48392091300,13186.7718887750,19659.1391190000,25124,29224.2103783000,31831.3622737990,32747.0305621660,31920.8424897500,29447,25415.9242346300,19995.1722152760,13419.3725606200,6147.46551370000,-1286.00000000000,-8570.03432227000,-15645.9573821290,-22145.2122225800,-27328.9921617500,-30542,-31916.2008468500,-32227.5036043200,-31466.9161051400,-28609.3724833000,-22941,-15629.9124714100,-8986.79257971500,-3565.93918950000,2937.61202371000,12614,23172.7124599800,28359.4639834730,23587.2333525800,11430.7179155600,6.29183701610000e-13,-4309.42032176000,-1961.00520245200,1510.87385522000,1959.56128210000,5.48803594460000e-13,-1327.74643783000,-685.695782795000,585.176866920000,789.644544330000,3.98913397210000e-13,-528.988559130000,-275.970715836000,248.011365960000,324.109928400000,2.27140492910000e-13,-190.774596370000,-95.1520463450000,78.8298910400000,97.8619001200000,8.29752392200000e-14,-60.2921799200000,-24.1316174640000];
Фильтрую в матлабе функцией upfirdn. up = 5, down = 2.

Ответить