首页 > 其他分享 >MATLA 5G工具箱---

MATLA 5G工具箱---

时间:2023-03-31 18:44:10浏览次数:48  
标签:AI --- So MATLAB learning 5G data MATLA

基于MATLAB R2022b版软件学习!

Deep Learning for Wireless Communications

视频链接:https://www.mathworks.com/videos/deep-learning-for-wireless-communications-1625082196426.html

Good morning, ladies and gentlemen. My name is Houman Zarrinkoub. I am the product manager of all the wireless products at MathWorks, including 5G, LTE, WLAN, and satellite communications, and it is my pleasure to be with you today in this MathWorks webinar entitled Deep Learning for Wireless Communication.

Let's go over the agenda of today's talk. Following some introductory remarks on AI for wireless and its role these days, I'm going to essentially take you through a design workflow involve with application of AI techniques in wireless. And the workflow has essentially four components-- the preparation of data, the AI modeling, simulation and testing, and deployment. I'm going to use examples and a particular application to put that all into context, and I'm going to summarize by providing you more areas to learn.

Now, is it time for applying AI techniques to wireless problem? The wireless systems and technologies today are becoming increasingly complex, as you can imagine. And when you have the number of parameters characterizing a system increasing substantially, then writing typical traditional algorithms that take all the parameters into account becomes an arduous task. Therefore, AI techniques that essentially learn from the operations and apply those algorithms based on learning are emerging these days.

As you know AI, or artificial intelligence has been successfully applied to other areas of signal processing-- image recognition and so on, audio and speech processing, automatic language processing. So some would say it is time for AI to contribute to solving wireless problem. That includes stuff like network simplification or network modeling and simulation, improved performance based on monitoring the performance based on real data, spectral efficiency, and so on.

So what are typical applications that our customers are telling us are using AI techniques in their solutions? We have been in contact with customers who are working on signal classification-- a typical AI application that you classify different signals, in this case modulation techniques, based on the signals you get. Identifying friendly and unfriendly devices-- where the signal comes from. Even the technique of digital predistortion which is used to improve performance.

There are some AI techniques to capture the nonlinearities properly, devising better receiver algorithms to adapt to the changing nature of the channel, and so on. Even channel modeling and channel estimation and prediction, as well as automatic encoding and decoding. Beamforming, which is very highly leveraged in 5G and beyond. And wireless network optimization-- allocating the right resources to multiple users. These are typical applications we hear that AI techniques have been applied to.

Let's look at some definitions. What is artificial intelligence for the purpose of this talk? Any technique that enables machines to learn and mimic human intelligence, that is AI. And historically, we started with machine learning techniques which are statistical methods that essentially extract some features from physical measurements and try to apply pattern recognition techniques to classify or regress and extract information. And then deep learning are newer, and it's essentially neural networks with many layers that combine the task of feature extraction and learning about a pattern and they're mapping representations directly from data. And these are essentially progressed through time.

So let's look at the machine learning and deep learning taxonomy so we can get clear on that. So machine learning, you can have some unsupervised learning or supervised learning. In unsupervised learning, you don't essentially label your data, meaning that you don't go and using human intelligence to supervise to come from human intelligence, saying that this class of signals are this, and this class of signals are that, and then allowing the AI models to learn different characteristics.

In unsupervised learning, you just specify a criteria, a cost function, a metric to optimize, and let clustering and machines going through all kinds of iterations to essentially, without supervision of humans, extract the patterns. But, as in supervised learning, you label data. The intelligence of humans says that these are the class of signals that are A. These are the class of signals that are B-- based on the features. And based on that, you either classify or find the regression, find the rule that matches the noisy data.

Now, deep learning is a class or subclass of supervised learning and machine learning, and distinction lies in whether you are doing feature extraction explicitly or not. If you are doing feature extraction explicitly-- meaning you have raw data, and you perform some preprocessing to extract features-- if you're doing that, and you're applying labeling on features, that's called machine learning, supervised learning. But if you are not doing the feature extraction, you are letting the multilayer deep learning network do both feature extraction and training, that is essentially deep learning.

And MathWorks' tools-- our tools, our tool boxes and MATLAB and our add-on products essentially enable you to do wireless with AI better. We have lots of features and products to help you make the task of AI, machine learning, deep learning, and reinforcement learning easier and better. So what does the AI-driven system design look like? From a high point of view, you have some data that you want to classify, regress, or you want to develop some AI-based rules from them. So first you need lots of training data. You need the data to be cleaned and prepared, so you do some preprocessing.

Again, if you do a supervised learning, you need human insight or human intelligence to help you label, and you need to make as much data possible for each class, such that you can find all possible ways that noise and distortions modeled into your classification process. You need simulation-generated data. Then, after data is prepared and labeled and everything, you go through AI modeling. You model the layers and the learning mechanism, and you tune that learning and model in order to get better performance. And then, because these things take time, you want to accelerate their training by using techniques that make the training not-- do the same performance much faster. And you worry about interoperability between your environment and the environment that you want to implement.

Now, after you have trained your AI model, and in the AI model there is rules generated for classification, regression, all the other applications-- you want to actually see if it works properly. You want to simulate and test that that system that you just trained works properly. So you want to integrate within a complex system-- in a complex system, plug in your AI-based classifier and so on.

You want to simulate the entire system and look at the metrics across the entire system and verify that the system operates properly and verify and validate. And finally, when you're done with all these three simulation levels, you want to deploy it on a hard drive-- on embedded devices or enterprise system, like Azure or AWS or other systems that are in the cloud, and Edge and desktop, and you want to deploy that. So that's a whole process in one snapshot.

Let's look at each of them one by one. So deep learning models are only as good as training data. So that's a classical idiom in engineering lingo. If you have nonsense in, you have nonsense out. And essentially you have to prepare a lot of data-- representative data but huge amount that covers the space of each class that you are assigning to so that your system becomes robust.

So you need to apply human intelligence label and say all these classes of data that I have here belong to 5G, all this class belongs to Wi-Fi, all this class belongs to this device, that device. So you have to have lots of data with lots of possible distortion noise interference and so on, and you have to say, this bucket of data is labeled as such. And if you have limited data availability, real world signals, you have to generate synthesized signals to augment your stuff.

Now, you also need to have domain-specific data processing. You can't just apply a same classifier across various domains. You have to do some preprocessing and postprocessing to achieve that. And there is not enough reference research done on all possible classes. So you are at the mercy of training set that you develop.

As I mentioned, in order to create large amounts of data, which robustifies your AI model, you have to augment your existing data and generize synthesize additional data. And one example here that I'm showing is I create a lot of different 5G signals here. This is a resource grid of a 5G system with CSI-RS reference signals, or pilots. So you need to create that, and you need to create other reference signals and other channels. So you create a lot of these possible signals that can be seen over time and frequency over 5G in order to create a classified on a device 5G.

And we have tools, as you can see here. And our example, the Generative Adversarial Network, GAN, for sound synthesis is one of the examples that we show how we generate a lot of existing synthesized signals for, in this case, audio. But you can use phased array and communication tool boxes to generate a lot of IQ samples for your wireless train.

This is one way to do it. As of 2018b and up to now, we have been evolving this tool or app called Wireless Waveform Generator app. With a click of a button we can create 5G, LTE, wireless LAN, and all kinds of custom signals, OFDM, QAM, and so on. All you have to do is go to MATLAB, go to Apps, find the Wireless Waveform Generator app, pick one of those. in this case, I chose 5G downlink FRC, for example.

Assign some parameters, and click on Generate. You will see the time domain, frequency domain, the time frequency resource grid, and the channel is created. And it can export all of that to workspace as a variable. So you generate these signals, you generate a bunch of them, and you create a lot of stuff. And you can apply that, for example, to e plotting deep learning for channel estimation that I'm going to show you at the end-- go through this example.

What else MATLAB provides, beside the Wireless Waveform Generator app, to make your synthetic data creation for AI modeling easier? We have connectivity to lots of software-defined radios, guys, and RF instruments, meaning from MATLAB directly you can acquire live signals into MATLAB environment and add that to your training data for the purpose of application of AI techniques to wireless. So as you can see, that only can generate the waveform based on the Wireless Waveform Generator app.

With one function call, you can send that generated waveform to an RF signal generator, like Agilent or Rhode & Schwarz, or all kinds of stuff, and radiate that over the air. Or you can set it to a low-cost software-defined radio, either USRP or RTL-SDR, which is the receiver, Pluto SDR, Zynq SDR. We have a lot of support for software-defined radios which enables you to transmit them over the air.

So that's on the transmission side. On the receive side, you cannot only rely on the stuff you just transmitted, you can also tune to frequency of anything-- FM radio station, ADBS, all kinds of towers and Wi-Fi signals can actually-- if you tune the right frequency, you can get the signal over the air using our RF signal analyzers and software-defined radios like all RTL-SDR, Pluto SDR, and so on. And you bring that into MATLAB. So our connectivity to hardware makes the task of generating live signals for your AI possible. All you have to do is go to MATLAB, there's an Add-On button in the MATLAB environment, and ask for Get Hardware Support.

And you get the same thing by calling in MATLAB Support Package Installer. A library of available hardware catalog shows up, and you can go through the hardware setup and install a free add-on for connecting to, for example, Pluto SDR or for connecting to USRP and so on. And after you do that, for example, for Pluto SDR, after you install that connectivity add-on that we have, there is one function called MATLAB SDRTx to transmit, SDRRx to receive. And you specify the kind of radio that you just installed, Pluto or USRP and this and that. You set the parameters, you tune the frequency to set the frequency of interest, and you just keep acquiring data, as simple as that.

Same thing, the RF instruments. You can connect to RF instruments using our Instrument Control Toolbox. You install the toolbox, which is one of the toolboxes we have in MATLAB, and as long as you connect the computer that MATLAB is installed on to a networks, using all kinds of network connection, and the RF signal generator has IP on that network, then you generate baseband signal as you saw, and you download that to signal generator, and you transmit that over the air. With the same Instrument Control Toolbox, you can connect MATLAB and the computer's installed onto a spectrum analyzer, for example, and yeah, you can-- Instrument Control Toolbox has functions and apps that lets you retrieve IQ baseband samples into MATLAB, which is of the class you want to use in AI modeling and augment your training data. And it can perform visualization analysis and model and train your AI systems, as simple as that.

So after you have gotten these synthetic data, which is easy to generate in MATLAB using Wireless Waveform Generator app, or this live data, using SDRs or RF instruments into MATLAB, you have to perform preprocessing to make the signal that you got in ready to be fed as input to the input layer of your AI model. So things that are important here is one technique, which we're going to go through, is if you represent the signal in time frequency using spectrogram or other techniques where time is on the x-axis and frequency is on the y-axis, and the signal strength in each time and frequency coordinate is captured by colors and heat map, that lends itself to images, guys. So that image of time frequency representation can easily be fed to existing deep learning networks that are trained to classify on images.

So that's one very important way we can bring your IQ samples. And by providing a time frequency transformation on them, they become readily available as input to existing deep learning networks. You can also do feature engineering and find features and take those features and feed the network, or you can just do the IQ samples directly by I and Q separately, and so on. So these are the mapping of data to input layers of AI that you have to do as a last step of preprocessing.

So now you are in the AI modeling part. You have to model your AI network and go through AI modeling. So we did our MathWorks tools that are designed for AI, and there are essentially four of them-- Deep Learning Toolbox, Machine Learning Toolbox-- Machine Learning and Statistics Toolbox, we have Predictive Maintenance and Reinforcement Learning. We have lots of algorithms for machine learning, Bayesian techniques and theory and so on. And for deep learning, convolutional neural networks, CNNs, GANs that I told you about, and so on, reinforcement learning, different kind of algorithms.

So you can build your entire deep learning, machine learning, even reinforcement learning network that takes as input the data that I told you about using our toolboxes. If you want to use prebuilt models that are available outside MathWorks tools-- AlexNet GoogLeNet, ResNet, all kinds of stuff has been developed outside MATLAB environment, and we easily connect to it, and actually we can take it into our environment-- you can use that. And we have done lots of reference example where these-- we show the whole process of object detection for vehicles, pedestrians, so on, semantic segmentation, and signal and speech processing. We have those examples, so you can start not from scratch, from a lot of good done that it's worked for you. So MATLAB becomes an environment that all these techniques are available and you can pick and choose which mode and modality you want to use.

For example, besides generating synthetic and live data, one of the advantages of using deep learning and machine learning in MATLAB is MATLAB provides-- increases productivity using apps we have designed for deep learning networks and allow you to explore a wide range of classifiers, train regression models, and more. For example, you see here I have a monitor-- I'm going to go through it a little bit later on. We have a deep network design that comes with Deep Learning Toolbox, and that app allows you to not only essentially build all the layers of your deep learning network one by one, connect them and create any deep learning network model at any number of layer width and depth with all parameters, but also allows you to import those predefined networks, prebuilt networks, and connect to them.

And also Experiment Manager-- after you set up your deep learning network, you can use Experiment Manager to set up an experiment which goes through all kinds of different trials and look at the hyperparameters and all the parameters of deep learning network and of the parameters of training them and find you the best match or the best profile of hyperparameters needed and compare the results and gives you the code to deploy. So for example here, we're talking about all the stuff that you're doing with deep training network, and you generate the data, you define the CNN structure. So you see, in MATLAB we are getting training data and training labels. This is supervised learning.

And then we have-- we go to our apps and we open in the Machine Learning and so on, we open the Deep Network Designer. And If you do that it shows up, as you can see, in deep learning-- Deep Network Designer app, you can either create a blank network, and you use either specific from the library-- you can use all kinds of different convolution, reduction, image point, all kinds of layers, and easily augment the number of layers you need to develop your network. You connect them easily, and every one of them has lots of parameters. You parameterize them, you set parameters, or you make the parameter subject to further optimization by the Experiment Manager, and so on and so forth.

And you go and you generate your deep learning network. And you can analyze it, and the analysis shows you all kinds of reports about various aspects of activation, the type, and the states and the sizes of different variables as they go through this network, and also it can export that as generated code or to a twin environment. And then you can go and further optimize your system.

So hardware acceleration and scaling also is needed. When you go through that training, provide large amounts of data, go through all that training and you train the model, you notice that it takes a long time to go through all trials and so on and so forth. So MATLAB has another set of tools which other environments may not have for accelerating the AI training, which is notoriously long on stuff like CPUs and cloud and data center resources.

So for GPU we have GPU Coder product and other techniques that allows you to create a-- take a GPU-enabled MATLAB functions and even your network and generate CUDA-enabled GPU code that runs on Nvidia, for example, GPUs and make it much faster. We have techniques to generate a faster running of the simulation on Azure or AWS.

And you don't need to do specialized programming for that. We take care of all the generation of code that accelerates your stuff. All you have to do is get the corresponding toolbox, learn how to use them, and get the result of accelerating. And the good news is that numerically, they're almost identical, plus minus the accuracy of levels, but it runs much faster.

How about simulation testing? So you see, you got prelabeled synthesized or live data in, you transform them to time frequency representation that make it look like an image, you train your network with our deep learning training network analyzers, and you have a trained model. This is trained, it understands, it extracts features, it maps them to the right classifiers.

Now what do you do? You need to have new signals which were not biased toward training data-- repetitive signals but not from the same data set. That is the trick. If you use the same data that you used in training for testing, you are deluding yourself. You have to use new signals that hasn't been seen by a training process, realistic signals, and you have to transform them similarly to the same domain, give to the pretrained network, and see how the pretrained network will classify them.

And you actually have labeled also the training data. So you know if it's true or not, you create confusion matrix, how much success, how much failure, and you keep iterating these results. To show all of that in action, I'm going to design a system that monitors a wide band of a spectrum. I'm going to apply essentially spectrum sensing and cognitive radio, and we're going to label 5G and LTE signals on a spectrogram.

And we're going to go through the workflow, generate 5G and LTE signals using Wireless Waveform Generator, calculate spectrogram to put into time frequency presentation, label pixels as the spectrogram, as 5G LTE or noise. They're going to choose a deep neural network to leverage an existing network architecture, in this case DeepLab ResNet, and essentially train the network to classify properly, begin to optimize the hyperparameters on Experiment Manager I told you about, and we're going to test. And we're going to use the over the year captured signal as just the environment and enhanced training by iterations.

So the application, I told you, is a cognitive radio and spectrum sensor. Design a system that monitors a wide band of spectrum. In this case, I'm going from about 60 megahertz of a bandwidth. So in this case, frequency is in my x-axis as time is on my y-axis. And we're going to label different segments of time and frequency as LTE or 5G or noise.

So first thing is to prepare training data. We're going to generate 5G and LTE signals using our Wireless Waveform Generator app. So here I open the Wireless Waveform Generator app. I have 5G, I have LTE.

So I'm going to go and click on one of them, 5G for example. It creates all kinds of parameters for 5G signal generation. In this case, the domain parameters, the frequency range, FR1, FR2, the bandwidth and so on and so forth. And then I'm going to set other parameters, like SS burst, synchronization burst, parameters of that, PDSCH to user data. And as soon as you click on that, all kinds of parameters shows up of how much-- what kind of modulation scheme you want to use, what kind of coding scheme.

You can add different modulation to different bandwidth parts and so on. And you specify different-- all the parameters that 5G expects you to set. And then you can go through all kinds of other additions, look at the resource grid. This is the time frequency resource grid. In this case, symbols are on the time domain and frequency domain.

And you can look at Spectrum Analyzer. That is essentially 50 megahertz signal you saw. And it can export to a file, to MATLAB script, and it can run that MATLAB script to generate in MATLAB lots of data by adding a lot of different noise or impairments you see can generate using R. So you generate the waveform, the actual MATLAB code. And by doing that you can set together a larger training set for your future testing.

Now we're going to go and calculate the spectrogram. And when you calculate the spectrogram, essentially you take the signal and you go to the signal processing toolbox called spectrogram function, and from the IQ samples' time domain data creates a spectrogram where you choose where is the location of your time and frequency. In this case, we use time on the y-axis. And you see we have different kinds of spectrogram for different kinds of signals that we label here.

And then you go through labeling. Now labeling can be done by visual inspection, supervised human-based, which takes a lot of time, or you can extract some features and write a MATLAB program to say if you are in this to this domain that's the 5G, if you are this to this that's LTE. So we can even make the labeling of pixels to allocate them automatic. So the process is, now I have an image, and this image represents a combination of 5G, LTE or noise, and I'm going to assign to each pixel, using a MATLAB function, a label-- 5G, LTE, and so on. And that I'm going to use in my training of neural network later.

So now we're going to go and design or use existing deep neural network. In this case, we can use DeepLab version 3+ is let-- ResNet-50 for semantic segmentation. We're going to apply transfer learning-- I'm going to talk to you about. What does that mean? So we've got to go to the Deep Network Designer, and we're going to go and look and import an available ResNet 3 DeepLab network. And each, as you can see, layers have different branches and so on and so forth. And we're going to have parameters on that.

All right, so now we can optimize hyperparameters using Experiment Manager, which is another app that shipped with our Deep Learning Toolbox. So in Experiment Manager, you're going to create a new test sequence and test the environment, and you make some parameters, in this case, pixel accuracy or maximum number of frames. These are hyperparameters you set. And you make essentially a criteria, and you say, run this thing until that criteria is met.

So it runs a bunch of iterations after training until you have optimized the hyperparameter. So this is all done for you. You just set the parameters of interest and specify the criteria, and it will optimize for you.

Now it's time for you to test. So we test the synthesized signals that we generated using Waveform Generator app, and you look at the normalized confusion matrix. If I send a 5G signal and I receive a 5G, 97% right in this after training. LTE, 87% right. Noise, 97% right. So you see, LTE has not as much accuracy as 5G or noise. So we have to look at that.

And then they're going to use actually over-the-air test the signal. We're going to tune to a particular swath of frequency over 5G or LTE network close to my base station near our house and using SDR connectivity that I told you about from communication toolbox to capture the signal and test with that. And as you test with that, you realize that LTE has a problem because, although the LTE seems to have-- you can see here-- seems to have a 10 megahertz bandwidth here, but somehow only 7 megahertz of it is deemed right. So I guess we have used a lot of 5 megahertz LTE signal for training and a little bit less 10 megahertz. So now, based on the first iteration, I know I have to augment my LTE training set to not be on 5 megahertz bandwidth, also have 10 megahertz and so on.

So you see testing informs you of what's wrong with your original data. So now it creates more synthetic data, more-- you augment your training data set to have more representative data. And by doing that, if I run this one more time you see, now that I do that, the LTE is properly covered because I use more train data representative of LTE signals at 5 and 10 megahertz and even 20 megahertz. And that's the story about that.

So after all of this is done, you have to deploy to any processor with best-in-class performance. And AI models, one thing we can do for you is that because of all that code generation tools and products we have, we can deploy easily from MATLAB environment and Simulink environment to embedded devices or edge devices, enterprise system, cloud, desktop. And you can see our coder workflow, we go from MATLAB and AI through code generation to GPU to CPUs with SQL generation, GPUs with CUDA code and FPGA.

We have a new product, actually, called Deep Learning HDL Toolbox that generates automatically HDL code for you. And you see here using MATLAB compiler, we can actually deploy it to all kinds of enterprise system. So the path to embedded system, enterprise system is available, which is not available in other environments.

For example we used the Deep Learning HDL Toolbox to run the deep learning networks on some application on FPGA. And you essentially use five lines of MATLAB code. So you just say-- set up the workflow, you say compile, and you download it to Xilinx FPGA, and you run that. And when you run that, it runs much faster.

Well I showed you a cognitive radio and spectrum sensing example, but there's so many examples where AI has been applied in wireless area. We have autoencoders that adjusting coding and decoding parameters automatically based on learning, modulation classification with deep learning, designing a deep learning network with simulated data for detecting wireless routers, what kind of routers is used, and RF fingerprinting, DPD, RF receivers, training a neural network for LLR estimation, which is a situational estimation, and so on. So we have a lot of examples for you to see how the basic idea that I present, the basic workflow, can be applied in different domains, and you can modify it for your domains.

You have a user story here, our customer NanoSemi improved the efficiency for their 5G design and accelerated the design of RF power amplifiers and linearization and DPD by using machine learning algorithms. And they report the development time was reduced by half. And that's a testament of how much time we save you by allowing you not to work on really implementing or reinventing the wheel but using those techniques prebuilt-- AlexNet, ResNet, GoogLeNet, as well as yourself, the stuff in MATLAB and using lots of data to prove it.

We also have MATLAB training courses for AI, which are either very extensive three-day or one-day course on machine learning and deep learning, and we have a machine learning and deep learning Onramp, which is a self-paced training, free. So you can go to mathworks.com, look for Machine Learning Onramp, Deep Learning Onramp, learn how deep learning and machine learning done on your own pace. And if you're interested, we can do customized training for data science and AI.

To summarize, we can prepare training data, train the network, and test the synthetic and over-the-air signals in MATLAB. That is the value that we have in MATLAB for your AI for wireless application. You can prepare training data for wireless machine learning, deep learning algorithms, add channel RF impairments to make the data set larger and more representative, augment captured signals with synthetic signals, we can preprocess training data, you can train neural networks using our tools, go through design and also optimizing parameters, you can test using our over-the-air signals with SDR and RF instruments, and we can deploy to any devices and import and export networks from other frameworks. So you do not-- you're not supposed to choose. We can choose either to work in MATLAB environment and deploy other areas.

With that I want to thank you very much for attending this webinar. After a short pause, my friends will open the floor for the questions that you may have. Thank you so much.

 

女士们,先生们,早上好。我是胡曼·扎林库布。我是MathWorks所有无线产品的产品经理,包括5G、LTE、WLAN和卫星通信,我很高兴今天能和大家一起参加MathWorks名为“无线通信的深度学习”的网络研讨会。

我们先来回顾一下今天的演讲议程。在对无线领域的AI及其作用进行了一些介绍性评论之后,我将基本上带您了解涉及AI技术在无线领域应用的设计工作流程。这个工作流程本质上有四个组成部分——数据准备、AI建模、模拟和测试以及部署。我将用例子和一个特定的应用来把这一切放在上下文中,我将通过提供你们更多的学习领域来进行总结。

现在,是时候把AI技术应用到无线问题上了吗?今天的无线系统和技术变得越来越复杂,你可以想象。当表征系统的参数数量大幅增加时,那么编写将所有参数都考虑在内的典型传统算法就成为一项艰巨的任务。因此,本质上从操作中学习并基于学习应用这些算法的AI技术最近正在出现。

如你所知AI,或者人工智能已经成功地应用到信号处理的其他领域——图像识别等等,音频和语音处理,自动语言处理。所以有人会说,现在是AI为解决无线问题做出贡献的时候了。这包括网络简化或网络建模和仿真,基于真实数据监测性能的改进性能,频谱效率等等。

那么,我们的客户告诉我们,在他们的解决方案中使用AI技术的典型应用有哪些?我们已经联系了一些正在研究信号分类的客户——典型的AI应用,你根据你得到的信号对不同的信号进行分类,在这种情况下是调制技术。识别友好和不友好的设备——信号来自哪里。甚至是用于提高性能的数字预失真技术。

有一些AI技术可以适当地捕捉非线性,设计更好的接收机算法来适应信道变化的性质,等等。甚至是信道建模和信道估计和预测,以及自动编码和解码。波束形成,这在5G及以后的应用中杠杆非常高。以及无线网络优化——将正确的资源分配给多个用户。这些都是我们听说的AI技术已经应用到的典型应用。

让我们来看看一些定义。就本次演讲的目的而言,什么是人工智能?任何能让机器学习和模仿人类智能的技术,都是AI。历史上,我们从机器学习技术开始,这是一种统计方法,本质上是从物理测量中提取一些特征,并尝试应用模式识别技术来分类或回归和提取信息。然后深度学习是较新的,它本质上是具有许多层的神经网络,它结合了特征提取和学习模式的任务,它们直接从数据映射表示。这些本质上是随着时间的推移而发展的。

所以让我们来看看机器学习和深度学习的分类,这样我们就可以弄清楚这一点。所以机器学习,你可以有一些无监督学习或有监督学习。在无监督学习中,你本质上不会给你的数据贴上标签,也就是说你不会去用人类的智能去监督从人类的智能来,说这一类信号是这个,这一类信号是那个,然后让AI模型去学习不同的特征。

在无监督学习中,你只是指定一个标准,一个代价函数,一个指标来优化,然后让聚类和机器经过各种迭代,从本质上来说,不需要人类的监督,就可以提取出模式。但是,就像在监督学习中一样,你给数据贴上标签。人类的智能说,这些是a类信号,这些是B类信号——基于特征。在此基础上,你要么分类要么找到回归,找到与噪声数据匹配的规则。

现在,深度学习是监督学习和机器学习的一个类或子类,区别在于你是否显式地进行特征提取。如果你显式地做特征提取——意思是你有原始数据,你做一些预处理来提取特征——如果你这样做,你在特征上应用标签,这就叫做机器学习,监督学习。但如果你不做特征提取,你是让多层深度学习网络同时做特征提取和训练,这本质上就是深度学习。

而MathWorks的工具——我们的工具,我们的工具箱和MATLAB以及我们的附加产品本质上可以让你更好地用AI做无线。我们有很多功能和产品,可以帮助你把AI、机器学习、深度学习和强化学习的任务做得更容易、更好。那么ai驱动的系统设计是什么样的呢?从更高的角度来看,你有一些数据,你想要分类,回归,或者你想从中开发一些基于ai的规则。所以首先你需要大量的训练数据。你需要清理和准备这些数据,所以你要做一些预处理。

同样,如果你做监督学习,你需要人类的洞察力或人类的智能来帮助你标记,你需要为每个类制作尽可能多的数据,这样你就可以找到所有可能的方法,把噪音和扭曲建模到你的分类过程中。你需要模拟生成的数据。然后,在数据准备好、标记好等等之后,你要进行AI建模。你对层和学习机制建模,然后调整学习和模型,以获得更好的性能。然后,因为这些事情需要时间,你想要通过使用技术来加速他们的训练,让训练不——做同样的表现得更快。而且你会担心你的环境和你想要实现的环境之间的互操作性。

现在,在你训练了你的AI模型之后,在AI模型中有为分类、回归和所有其他应用生成的规则——你想实际看看它是否能正常工作。你想要模拟和测试你刚刚训练的那个系统是否正常工作。所以你想在一个复杂的系统中进行集成——在一个复杂的系统中,插入你的基于人工智能的分类器等等。

你想要模拟整个系统,并查看整个系统的指标,验证系统是否正常运行,并进行验证和验证。最后,当你完成了所有这三个模拟级别后,你想把它部署到硬盘上——在嵌入式设备或企业系统上,比如Azure或AWS或其他云中的系统,以及Edge和桌面,你想要部署它。所以这就是一个快照里的整个过程。

下面我们逐个看一看。所以说,深度学习模型只和训练数据一样好。所以这是工程行话中的一个经典成语。如果你有无意义的输入,你也会有无意义的输出。本质上,你必须准备大量的数据——有代表性的数据,但数量巨大,涵盖了你分配给每个类的空间,这样你的系统才会变得健壮。

所以你需要应用人类智能标签,说我这里所有这些类别的数据都属于5G,所有这类数据都属于Wi-Fi,所有这类数据都属于这个设备,那个设备。所以你必须有很多数据,有很多可能的失真噪声干扰等等,你必须说,这一桶数据是这样被标记的。如果你有有限的数据可用性,真实世界的信号,你必须生成合成信号来增强你的东西。

现在,你还需要有特定领域的数据处理。你不能只是在各个领域应用同一个分类器。你必须做一些预处理和后处理来实现这一点。而且对所有可能的类都没有做足够的参考研究。所以你要受你开发的训练集的支配。

正如我提到的,为了创建大量的数据,从而增强你的AI模型,你必须增强你现有的数据,并泛化合成额外的数据。这里我要展示的一个例子是,我在这里创建了很多不同的5G信号。这是一个5G系统的资源网格,有CSI-RS参考信号,或先导信号。所以你需要创建这个,你还需要创建其他参考信号和其他通道。所以你创造了很多这些可能的信号,这些信号可以在5G上随着时间和频率被看到,以便在5G设备上创建一个分类。

我们有工具,你可以在这里看到。我们的例子,生成对抗网络,GAN,用于声音合成,这是其中一个例子,我们展示了如何生成大量现有的合成信号,在这个例子中,音频。但是你可以使用相控阵和通信工具箱来为你的无线列车生成大量的IQ样本。

这是一种方法。截至2018b和现在,我们一直在发展这个名为无线波形发生器应用程序的工具或应用程序。只需点击一个按钮,我们就可以创建5G, LTE,无线局域网,以及各种自定义信号,OFDM, QAM等等。你所要做的就是打开MATLAB,进入app,找到无线波形发生器应用程序,从中选择一个。例如,在这种情况下,我选择了5G下行FRC。

分配一些参数,然后点击Generate。你会看到时域、频域、时频资源网格,信道创建完成。而且它可以把这些都作为变量导出到工作区。所以你产生了这些信号,你产生了一堆信号,你创造了很多东西。你可以应用它,比如,用e图深度学习来进行信道估计,我最后要给你们看——先看这个例子。

除了无线波形发生器应用程序,MATLAB还提供了什么,让你更容易为AI建模创建合成数据?我们可以连接到许多软件定义的无线电、伙计们和RF仪器,这意味着您可以直接从MATLAB获取实时信号到MATLAB环境中,并将其添加到您的训练数据中,以便将AI技术应用到无线。正如你所看到的,这只能基于无线波形发生器应用程序生成波形。

通过一个函数调用,你可以将生成的波形发送到RF信号发生器,比如Agilent或Rhode & Schwarz,或各种各样的东西,并通过空气辐射。或者你可以把它设置成一个低成本的软件定义无线电,USRP或者RTL-SDR,也就是接收器,Pluto SDR, Zynq SDR。我们对软件定义无线电有很多支持,使您能够通过空中传输它们。

这就是传输方面的问题。在接收端,你不能只依赖刚刚传输的东西,你还可以调到任何频率——FM电台、ADBS、各种塔和Wi-Fi信号实际上都可以——如果你调到正确的频率,你就可以用我们的射频信号分析仪和软件定义的无线电,比如所有的RTL-SDR、Pluto SDR等等,在空中得到信号。然后你把这些都带入MATLAB。所以我们与硬件的连接使得为你的人工智能生成实时信号的任务成为可能。你所要做的就是去MATLAB,在MATLAB环境中有一个Add-On按钮,并要求获得硬件支持。

你可以通过调用MATLAB支持包安装程序来得到同样的东西。一个可用的硬件目录库会显示出来,你可以通过硬件设置并安装一个免费的附加组件来连接,例如,Pluto SDR或连接到USRP等等。在你完成这些之后,例如,对于Pluto SDR,在你安装了我们拥有的连接插件之后,有一个叫做MATLAB SDRTx的函数用于传输,SDRRx用于接收。然后你指定你刚安装的无线电类型,冥王星或USRP等等。你设置参数,调整频率以设置感兴趣的频率,然后继续获取数据,就这么简单。

同理,射频仪器也是如此。您可以使用我们的仪器控制工具箱连接射频仪器。你安装工具箱,这是我们在MATLAB中有的一个工具箱,只要你把安装了MATLAB的计算机连接到一个网络上,使用各种网络连接,射频信号发生器在那个网络上有IP,然后你就可以生成你看到的基带信号,你把它下载到信号发生器,然后通过空中传输。使用相同的仪器控制工具箱,你可以将MATLAB和计算机连接到频谱分析仪上,例如,是的,你可以——仪器控制工具箱有函数和应用程序,可以让你检索IQ基带样本到MATLAB中,这是你想在AI建模中使用的类,并增强你的训练数据。而且它可以执行可视化分析和建模,训练你的AI系统,就这么简单。

所以在你得到这些合成数据之后,这些数据很容易在MATLAB中使用无线波形发生器应用程序生成,或者这些实时数据,使用sdr或RF仪器到MATLAB中,你必须执行预处理,使你得到的信号准备好作为输入输入到你的AI模型的输入层。所以这里很重要的是一种技术,我们要讲的是,如果你用谱图或其他技术在时间频率中表示信号,其中时间在x轴上,频率在y轴上,每个时间和频率坐标中的信号强度是由颜色和热图捕获的,这就适合于图像,伙计们。所以这个时间频率表示的图像可以很容易地被馈送到现有的深度学习网络中,这些网络经过训练,可以在图像上进行分类。

所以这是一个非常重要的方式,我们可以带来你的IQ样本。通过在它们上提供时间频率转换,它们就可以随时作为现有深度学习网络的输入。你也可以做特征工程,找到特征,并把这些特征输入网络,或者你也可以直接分别通过I和Q来做IQ样本,等等。所以这些就是数据到AI输入层的映射,你要做的是预处理的最后一步。

所以现在你到了AI建模的部分。你必须对你的AI网络建模,并经历AI建模。所以我们做了我们的MathWorks工具是为AI设计的,基本上有四个——深度学习工具箱、机器学习工具箱——机器学习和统计工具箱,我们有预测维护和强化学习。我们有很多机器学习的算法,贝叶斯技术和理论等等。而对于深度学习,卷积神经网络,cnn,我讲过的GANs等等,强化学习,不同种类的算法。

所以你可以建立你的整个深度学习,机器学习,甚至强化学习网络,把我告诉你的使用我们的工具箱的数据作为输入。如果你想使用MathWorks工具之外可用的预构建模型——AlexNet GoogLeNet, ResNet,各种各样的东西都是在MATLAB环境之外开发的,我们很容易连接到它,实际上我们可以把它带入我们的环境——你可以使用它。而且我们已经做了很多参考例子,其中这些——我们展示了车辆、行人等物体检测的整个过程,语义分割,以及信号和语音处理。我们有这些例子,所以你可以不从零开始,从很多对你有用的好例子开始。所以MATLAB变成了一个环境,所有这些技术都可用,你可以选择你想要使用的模式和模态。

例如,除了生成合成和实时数据之外,在MATLAB中使用深度学习和机器学习的优点之一是MATLAB提供了——使用我们为深度学习网络设计的应用程序提高了工作效率,并允许你探索广泛的分类器、训练回归模型等。举个例子,你看这里我有一个监视器——我稍后会稍微介绍一下。我们有一个深度学习工具箱附带的深度网络设计,这个应用程序不仅可以让你在本质上一个一个地构建你的深度学习网络的所有层,把它们连接起来,并在任何层宽度和深度的数量上创建任何深度学习网络模型,还可以让你导入那些预定义的网络,预构建的网络,并连接到它们。

还有实验管理器(Experiment Manager)——在你建立好你的深度学习网络之后,你可以使用实验管理器(Experiment Manager)来建立一个实验,它会经历各种不同的试验,并查看超参数和深度学习网络的所有参数以及训练它们的参数,并为你找到所需的最佳匹配或超参数的最佳配置文件,并比较结果,然后给你部署的代码。比如这里,我们讨论的是你用深度训练网络所做的所有事情,你生成数据,你定义CNN结构。所以你看,在MATLAB中我们得到的是训练数据和训练标签。这就是监督学习。

然后我们进入我们的应用程序,打开机器学习等等,我们打开深度网络设计器。如果你这样做,它就会显示出来,你可以看到,在深度学习——deep Network Designer app中,你可以创建一个空白的网络,你可以使用任何特定的从库中——你可以使用各种不同的卷积,约简,图像点,各种层,并且很容易地增加你需要的层数来开发你的网络。你可以很容易地把它们连接起来,而且每一个都有很多参数。你对它们进行参数化,设置参数,或者让参数服从实验管理器的进一步优化,等等等等。

然后你去生成你的深度学习网络。你可以分析它,分析会向你展示各种各样的报告,关于激活的各个方面,类型,不同变量的状态和大小,当它们通过这个网络时,它也可以将其导出为生成的代码或导出到一个孪生环境。然后你可以进一步优化你的系统。

所以硬件加速和扩展也是需要的。当你完成那个训练,提供大量的数据,完成所有的训练然后训练模型的时候,你会注意到需要很长时间才能完成所有的试验等等。所以MATLAB有另一套其他环境可能没有的工具来加速AI训练,这在cpu和云和数据中心资源之类的东西上是出了名的长。

对于GPU,我们有GPU Coder产品和其他技术,可以让你创建一个支持GPU的MATLAB函数,甚至你的网络,并生成支持cuda的GPU代码,运行在Nvidia上,例如GPU上,并使其更快。我们有技术可以在Azure或AWS上生成更快的模拟运行。

而且你不需要为此做专门的编程。我们负责所有加速你的东西的代码生成。你所要做的就是获得相应的工具箱,学习如何使用它们,并得到加速的结果。好消息是,从数值上来说,它们几乎是一样的,加上减去等级的准确性,但运行速度要快得多。

那模拟测试呢?所以你看,你把预标记的合成数据或实时数据放进去,你把它们转换成时间频率表示,让它看起来像一张图像,你用我们的深度学习训练网络分析器训练你的网络,你就有了一个训练过的模型。这是经过训练的,它会理解,它会提取特征,它会把它们映射到正确的分类器。

现在该怎么做呢?你需要有不偏向训练数据的新信号——重复的信号,但不是来自同一个数据集。这就是诀窍。如果你用训练中使用的数据进行测试,那你就是在欺骗自己。你必须使用训练过程中没有看到的新信号,真实的信号,你必须将它们类似地转换到相同的域,给预训练的网络,看看预训练的网络将如何对它们进行分类。

而且你实际上也给训练数据打上了标签。所以你知道它是真的还是假的,你创建困惑矩阵,有多少成功,有多少失败,你不断迭代这些结果。为了实际展示所有这些,我将设计一个系统,监测一个频谱的宽频带。我将基本上应用频谱感知和认知无线电,我们将在频谱图上标记5G和LTE信号。

我们将通过工作流程,使用无线波形发生器生成5G和LTE信号,计算频谱图并将其放入时频表示中,将像素标记为频谱图,作为5G LTE或噪声。他们将选择一个深度神经网络来利用现有的网络架构,在这个例子中是DeepLab ResNet,本质上是训练网络进行正确分类,开始优化我告诉过你们的实验管理器上的超参数,我们将进行测试。并且我们将使用过去一年捕捉到的信号,仅仅作为环境和通过迭代增强的训练。

所以这个应用,我告诉过你们,是一个认知无线电和频谱传感器。设计一个系统,监测宽频段的频谱。在这种情况下,我从大约60兆赫的带宽开始。所以在这种情况下,频率在x轴上,而时间在y轴上。我们将把时间和频率的不同部分标记为LTE或5G或噪声。

所以第一件事就是准备训练数据。我们将使用我们的无线波形发生器应用程序生成5G和LTE信号。所以这里我打开无线波形发生器应用程序。我有5G,我有LTE。

所以我要点击其中一个,比如5G。它创建了5G信号生成的各种参数。在这种情况下,域参数,频率范围,FR1, FR2,带宽等等。然后我要设置其他的参数,比如SS突发,同步突发,那个的参数,PDSCH到用户数据。只要你点一下那个,各种各样的参数就会显示出你要用什么样的调制方案,什么样的编码方案。

你可以给不同的带宽部分添加不同的调制方式等等。你可以指定不同的- 5G期望你设置的所有参数。然后你可以通过各种其他的添加,看看资源网格。这是时间频率资源网格。在这种情况下,符号在时域和频域上。

大家可以看看Spectrum Analyzer。你看到的是50兆赫的信号。它可以导出到一个文件,到MATLAB脚本中,它可以运行MATLAB脚本,在MATLAB中生成大量数据,通过添加很多不同的噪声或损伤,你看到可以用r生成,所以你生成波形,实际的MATLAB代码。通过这样做,你可以为你未来的测试设置一个更大的训练集。

现在我们要去计算频谱图。当你计算频谱图的时候,本质上你拿着信号去到一个叫做频谱图函数的信号处理工具箱,从IQ样本的时域数据中创建一个频谱图,你可以选择哪里是你的时间和频率的位置。在这种情况下,我们在y轴上使用时间。你可以看到我们在这里标注了不同种类的信号,有不同种类的频谱图。

然后进行标记。现在标注可以通过目视检查,以人为监督来完成,这需要很多时间,或者你可以提取一些特征,写一个MATLAB程序,说如果你在这个领域到这个领域那就是5G,如果你在这个领域到这个领域那就是LTE。所以我们甚至可以让像素的标注来自动分配。那么这个过程就是,现在我有一张图像,这张图像代表了5G、LTE或噪声的组合,我要给每个像素赋值,用一个MATLAB函数,一个标签——5G、LTE等等。而我以后在神经网络的训练中也会用到这个。

所以现在我们要去设计或使用现有的深度神经网络。在这种情况下,我们可以使用DeepLab版本3+是让——ResNet-50进行语义分割。我们要应用迁移学习——我要给大家讲一下。这意味着什么?所以我们要去深度网络设计器,我们要去看看并导入一个可用的ResNet 3 DeepLab网络。而每一个,如你所见,层有不同的分支等等。我们会在上面设置参数。

好了,现在我们可以使用实验管理器优化超参数了,这是我们深度学习工具箱附带的另一个应用程序。所以在实验管理器中,你要创建一个新的测试序列并测试环境,你要做一些参数,在这种情况下,像素精度或最大帧数。这些都是你设置的超参数。你建立了一个标准,然后你说,运行这个东西,直到满足这个标准。

所以它在训练之后会运行一堆迭代,直到你优化了超参数。所以这一切都为你完成了。你只需要设置感兴趣的参数并指定标准,它就会为你优化。

现在是你测试的时候了。我们用波形发生器应用程序测试我们生成的合成信号,你看一下标准化的混淆矩阵。如果我发送一个5G信号,我接收到一个5G,训练后97%正确。LTE, 87%正确率。噪音,97%正确。所以你看,LTE的精度没有5G或噪音高。所以我们要看这个问题。

然后他们将使用实际的空中测试信号。我们将在我家附近的基站附近的5G或LTE网络上调到一个特定的频率带,并使用我在通信工具箱中告诉过你们的SDR连接来捕获信号并进行测试。当你测试时,你意识到LTE有一个问题,因为尽管LTE看起来有-你可以在这里看到-似乎有10兆赫的带宽,但不知为何只有7兆赫被认为是正确的。所以我猜我们已经用了很多5兆赫的LTE信号进行训练,稍微少用了一点10兆赫。所以现在,基于第一次迭代,我知道我必须增强我的LTE训练集,不要在5兆赫带宽上,也要有10兆赫等等。

测试可以告诉你原始数据有什么问题。所以现在它创建了更多的合成数据,更多——你增强了你的训练数据集,让它有更多的代表性数据。通过这样做,如果我再运行一次这个你看,现在我这样做了,LTE被适当地覆盖了,因为我使用了更多的训练数据代表LTE信号在5和10兆赫,甚至20兆赫。这就是关于它的故事。

所以在所有这些都完成之后,你必须部署到任何具有一流性能的处理器上。而AI模型,我们可以为你做的一件事就是,因为我们拥有所有的代码生成工具和产品,我们可以很容易地从MATLAB环境和Simulink环境部署到嵌入式设备或边缘设备、企业系统、云、桌面。你可以看到我们的编码器工作流程,我们从MATLAB和AI通过代码生成到GPU再到带有SQL生成的cpu,带有CUDA代码和FPGA的GPU。

我们有一个新产品,其实叫深度学习HDL工具箱,它会自动为你生成HDL代码。你可以看到这里使用MATLAB编译器,我们实际上可以将它部署到各种企业系统。所以到嵌入式系统、企业系统的路径是可用的,这在其他环境中是不可用的。

比如我们用深度学习HDL工具箱在FPGA上的一些应用上运行深度学习网络。而你基本上使用了五行MATLAB代码。所以你只要设置工作流,你说编译,然后下载到Xilinx FPGA,然后运行它。当你运行它的时候,它运行得更快。

好吧,我给你们展示了一个认知无线电和频谱感知的例子,但AI在无线领域应用的例子太多了。我们有基于学习自动调整编码和解码参数的自动编码器,用深度学习进行调制分类,用模拟数据设计一个深度学习网络来检测无线路由器,使用什么样的路由器,还有射频指纹,DPD,射频接收器,训练一个神经网络进行LLR估计,这是一种情景估计,等等。所以我们有很多例子给大家看,我介绍的基本思路,基本的工作流程,是如何应用到不同的领域的,大家可以针对自己的领域进行修改。

你在这里有一个用户故事,我们的客户NanoSemi通过使用机器学习算法提高了他们5G设计的效率,加速了RF功率放大器和线性化和DPD的设计。他们报告称,开发时间缩短了一半。这证明了我们为你节省了多少时间,因为我们允许你不去真正实现或重新发明轮子,而是使用那些预先构建的技术——AlexNet, ResNet, GoogLeNet,以及你自己,MATLAB中的东西,并使用大量数据来证明它。

我们也有针对AI的MATLAB培训课程,要么是非常广泛的三天或一天的机器学习和深度学习课程,我们还有一个机器学习和深度学习Onramp,这是一个自定节奏的训练,免费的。所以大家可以去mathworks.com,找Machine Learning Onramp, Deep Learning Onramp,了解深度学习和机器学习是如何按照自己的节奏进行的。如果你感兴趣,我们还可以针对数据科学和AI做定制化培训。

总结一下,我们可以在MATLAB中准备训练数据,训练网络,测试合成信号和空中信号。这就是我们在MATLAB中为你的AI无线应用所拥有的价值。你可以为无线机器学习、深度学习算法准备训练数据,添加信道RF损伤以使数据集更大、更有代表性,用合成信号增强捕获的信号,我们可以预处理训练数据,你可以使用我们的工具训练神经网络,进行设计并优化参数,你可以使用我们的SDR和空中信号进行测试射频仪器,我们可以部署到任何设备,并从其他框架导入和导出网络。所以你不应该——你不应该选择。我们可以选择在MATLAB环境下工作,部署其他领域。

说到这里,我非常感谢大家参加这次网络研讨会。稍作停顿之后,我的朋友们可以开始提问了。非常感谢大家。

 

 

   

Feedback

标签:AI,---,So,MATLAB,learning,5G,data,MATLA
From: https://www.cnblogs.com/ISAC-ming/p/17277193.html

相关文章

  • Python的match-case语法
    Python3.10版本在2021年10月发布,新增了match-case语法。其实就是对应别的开发语言的switch-case语法。 例子defhttp_error(status):matchstatus:case400:print("Badrequest")case404:print("Notfound")case......
  • SB-RocketMQ-Provider-Consumer20230331
     一、生产者1、pom.xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.rocketmq</groupId>......
  • chatGPT----链接大全
      OpenAI:https://openai.com/blog/chatgpt/百度文心:https://wenxin.baidu.com/CSDN(调用text-davinci-003模型):https://so.csdn.net/so/chatNewBing:https://www.bing.com/newChatGPT官网:https://chat.openai.comChatGPT注册:https://ata.alibaba-inc.com/articles/253211......
  • 【深入浅出 Yarn 架构与实现】6-1 NodeManager 功能概述
    本节开始将对Yarn中的NodeManager服务进行剖析。NodeManager需要在每个计算节点上运行,与ResourceManager和ApplicationMaster进行交互。管理节点的计算资源以及调度容器。后续将对NM的功能职责、状态机、容器生命周期和资源隔离等方面进行讲解。本篇将从整体上对NM......
  • CISP-PTE靶场通关思路分享-SQL注入篇
    pte靶场中包含5道web题SQL注入首先打开本地搭建的网址,发现我们需要利用SQL注入对/tmp/360/key文件进行读取,读取该文件需要使用load_file()函数,该函数是MySQL中常见内置函数。   进入答题后,发现由当前执行的SQL语句,按照当前执行的SQL语句对SQL语法进行闭合 1http:/......
  • su su- sudo 的环境变量的知识
             ......
  • webpack-使用篇
    1.新建项目后,安装webpacknpminstallwebpack-D//开发环境依赖npminstallwebpack-g//全局安装安装webpack-clinpmiwebpack-cli-g//全局安装webpack-cli不止需要安装webpack,还需要安装webpack-cli,因为webpack4后加了更多功能,所以需要加入webpack-cli依赖。......
  • uni-app框架
    1.uni-app简介uni-app 是一个使用vue的语法+微信小程序的标签和API的跨平台前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台,几乎覆盖所有流量端,uni-app具有跨端数量更多、性能体验更优秀、学习成本低、开发成本低等几大关键优势。2.使用uni-app的......
  • element-ui plus中如何单独出发el-upload提交
    因为单独提交才好触发el-upload中的on-success函数在Vue3中,可以通过ref引用指向upload组件,然后使用该引用调用upload的submit方法来触发上传操作。具体实现如下:<template><el-uploadref="uploadRef"action="https://www.mocky.io/v2/5cc8019d300000980a05......
  • opencv-python 4.9.2. 轮廓特征
    矩图像的矩可帮助你计算某些特征,如对象的质心,对象的面积等特征。函数cv.moments()给出了计算的所有矩值的字典。从这一刻起,你可以提取有用的数据,如面积,质心等。质心由关系给出,$$C_{x}=\frac{M_{10}}{M_{00}}$$和$$C_{y}=\frac{M_{01}}{M_{00}}$$。这可以按如下方式完成:i......